Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stub implementation of new custom memory API #3437

Merged
merged 2 commits into from
Jan 14, 2025

Conversation

stedolan
Copy link
Contributor

@stedolan stedolan commented Jan 8, 2025

This is a stub implementation of @damiendoligez's new custom memory allocation API. The new API tracks both allocation and deallocation of dependent memory using caml_alloc_dependent_mem / caml_free_dependent_mem, and provides a convenience function caml_alloc_custom_dep which combines a custom block allocation and a call to caml_alloc_dependent_mem.

The difference from caml_alloc_custom_mem is that a user of caml_alloc_custom_dep must be sure to call caml_free_depedent_mem when the custom block is finalised.

In this PR, the new API is added so that we can port code to it, but under the hood it just calls caml_alloc_custom_mem and the alloc_dependent / free_dependent functions are no-ops.

(The changes to the existing API functions caml_alloc/free_dependent_mem are not backwards compatible. However, I'm not aware of any actual users of these functions, and if we find one someday it's easy to adapt)

@stedolan stedolan force-pushed the stub-custom-alloc-dep branch from 93e52c4 to 90f16ac Compare January 8, 2025 11:56
@stedolan stedolan force-pushed the stub-custom-alloc-dep branch from 90f16ac to 4f574f6 Compare January 8, 2025 11:59
Copy link
Contributor

@NickBarnes NickBarnes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Broadly this is OK, and we should probably merge it as-is. Three minor points which we could address when we put the implementation in:

  • I'm unclear why bigarray.c is so different between runtime 4 and runtime 5;
  • I would find this stuff easier to navigate with a clearer distinction in variable names and comments between custom block sizes and dependent memory sizes. Maybe consistently using dep_size?
  • Moar comments plzkthxbai.

runtime4/caml/custom.h Show resolved Hide resolved
runtime/bigarray.c Show resolved Hide resolved
runtime/custom.c Show resolved Hide resolved
@stedolan stedolan enabled auto-merge (squash) January 14, 2025 10:19
@stedolan stedolan merged commit 117a0a0 into ocaml-flambda:main Jan 14, 2025
22 of 23 checks passed
jvanburen added a commit that referenced this pull request Jan 22, 2025
commit a53391d
Author: Max Slater <max@thenumb.at>
Date:   Wed Jan 22 13:53:02 2025 -0500

    Rename `atomic_cas`/`Compare_and_swap` (#3491)

commit 92b327c
Author: Max Slater <max@thenumb.at>
Date:   Tue Jan 21 14:18:56 2025 -0500

    Additional operations for int atomics (#3490)

commit 38e792c
Author: Luke Maurer <lmaurer@janestreet.com>
Date:   Tue Jan 21 17:09:23 2025 +0000

    Support `-open Foo` where `Foo` is parameterised (#3489)

    The command line

    ```
    ocamlopt -open Foo -parameter P -c bar.ml
    ```

    should be fine, even if `Foo` is itself parameterised by `P`: as usual, we
    compile `bar.ml` as if it began with `open! Foo`, and by the subset rule, `Bar`
    can refer to `Foo` because it takes at least the same parameters. Unfortunately,
    currently we process `-open` before `-parameter`, so when we go to check the
    implicit reference to `Foo`, we think there are no parameters, and we report an
    error. (Confusingly, the error suggests that the user add `-parameter P` to the
    command line.)

    The fix is simple: move the code that processes `-parameter` earlier so that
    the initial environment is constructed with the parameters already available.

commit 784dc96
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 21 14:07:41 2025 +0000

    Rename [emit.mlp] to [emit.ml] on amd64 (#3488)

commit f3b720a
Author: Zesen Qian <riaqn@users.noreply.github.com>
Date:   Tue Jan 21 10:35:35 2025 +0000

    Module aliases save locks instead of walking them immediately (#3398)

commit 389a7c3
Author: Nick Barnes <Nick.Barnes@pobox.com>
Date:   Mon Jan 20 17:55:51 2025 +0000

    Add OCAMLRUNPARAM d= parameter for max # domains (#3487)

    Allow maximum number of domains to be specified as a OCAMLRUNPARAM parameter.

    (cherry picked from commit f92715f)

    Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>

commit 63767d7
Author: Nick Barnes <Nick.Barnes@pobox.com>
Date:   Mon Jan 20 17:45:30 2025 +0000

    Add caml_runtime_parameters back (#3468)

    Add caml_runtime_parameters back.

commit 5e9975e
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Mon Jan 20 17:15:15 2025 +0000

    Emit atomic compare and exchange (#3486)

commit a9821e8
Author: Basile Clément <129742207+bclement-ocp@users.noreply.github.com>
Date:   Mon Jan 20 15:36:09 2025 +0100

    Make patricia trees big-endian (#3438)

    This patch switches up the implementation of the `Patricia_tree` module
    from little-endian to big-endian, with the main motivation to be able to
    implement in-order traversal.

    The `caml_int_clz_tagged_to_untagged` and `caml_int_tagged_to_tagged` C
    stubs are recognized and replaced with the `clz` instruction when
    compiling with flambda2, so they are only used in the boot compiler.

commit b8a9789
Author: Leo White <leo@lpw25.net>
Date:   Fri Jan 17 13:35:19 2025 +0000

    Generate specific instructions for atomics on immediates (#3477)

    * Generate specific instructions for atomics on immediates

    * Fix formatting

commit 7b93134
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Fri Jan 17 09:30:30 2025 +0000

    Vectorizer: add tests (#3456)

    * Add tests

    * Disable ocamlformat on unboxed tests

    * Increase -vectorize-max-block-size for tests

    * Fix asssertion failure when vectorizing unboxed int32

    * Disable float32 on arm64 (not yet implemented)

    * improve gen_dune.ml for the vectorizer tests

    Co-authored-by: Xavier Clerc <xclerc@users.noreply.github.com>

commit 6379678
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Thu Jan 16 16:08:29 2025 +0000

    Add "-ocamlrunparam" linker flag (#3483)

commit f7b2cbe
Author: Xavier Clerc <xclerc@users.noreply.github.com>
Date:   Thu Jan 16 15:25:28 2025 +0000

    Bump the version of `actions/upload-artifact` (#3474)

    * Bump the version of actions/upload-artifact.

    * Ensure artifact names are unique.

    * To trigger CI.

    * Try with commit hash.

commit afb8a55
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Thu Jan 16 14:03:37 2025 +0000

    Move two macOS CI controllers to runtime5 (#3482)

commit aae5c40
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Thu Jan 16 13:50:34 2025 +0000

    Fix error in caml_get_init_stack_wsize (#3481)

commit 525868c
Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
Date:   Wed Jan 15 17:47:30 2025 -0500

    Use null pointers for `or_null`  (#3267)

    * runtime changes

    * runtime4 changes

    * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

    * make `Is_block` an inline function

    * redefine `Is_long`

    * fix

    * Change `CODE_UNBOXED_INT64` back

    * optimize `Is_block`/`Is_long`

    * `null_tag` for `caml_obj_tag`

    * consistent naming

    * slightly more reassuring comment

    * `inline` is unnecessary and might break `#define inline`

    * optimization incorrect in presence of nulls

    * Constructors and pattern-matching

    * Bytecode compilation

    * `or_null` is `Variant_or_null`

    * Accept tests

    * Runtime tests

    * Delete obsolete or_null test

    ---------

    Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

commit 9796b21
Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
Date:   Wed Jan 15 17:47:13 2025 -0500

    Runtime changes for `or_null` (#3265)

    * runtime changes

    * runtime4 changes

    * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

    * make `Is_block` an inline function

    * redefine `Is_long`

    * fix

    * Change `CODE_UNBOXED_INT64` back

    * optimize `Is_block`/`Is_long`

    * `null_tag` for `caml_obj_tag`

    * consistent naming

    * slightly more reassuring comment

    * `inline` is unnecessary and might break `#define inline`

    * optimization incorrect in presence of nulls

    ---------

    Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

commit df4a6e0
Author: Chris Casinghino <ccasinghino@janestreet.com>
Date:   Wed Jan 15 13:08:53 2025 -0500

    Bump magic numbers for 5.2.0minus-5 (#3478)

commit d1c8d85
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Wed Jan 15 16:44:39 2025 +0000

    Peek and poke (#3309)

commit f8caad4
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Wed Jan 15 16:00:39 2025 +0000

    Vectorizer: xmm register can hold ocaml values (#3455)

    * Add [Valx2] to [Cmm.machtype_component]

    * Vectorizer generates [Valx2]

    * Record live offsets of [Valx2] in the frametable

    For runtime4, xmm register are below [gc_regs], use negative offsets.

    * Move [types_are_compatible] from [Reg] to [Proc]

    This information has to be in sync with register classes, stack
    slock classes, and emit for move instructions.

commit 34a7873
Author: Zesen Qian <riaqn@users.noreply.github.com>
Date:   Wed Jan 15 13:13:18 2025 +0000

    Improve coherence of modality zapping (#3462)

commit 1a6a9d3
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Wed Jan 15 12:06:24 2025 +0000

    Fix caml_obj_with_tag (#3465)

commit bc5110a
Author: Nick Barnes <Nick.Barnes@pobox.com>
Date:   Wed Jan 15 11:52:25 2025 +0000

    Reset the pacing of major collection after any synchronous major GC (#3463)

    Reset the pacing of major collection at the end of any synchronous major collection.

commit 9faf700
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Wed Jan 15 11:32:59 2025 +0000

    Remove remnants of caml_obj_truncate (#3469)

commit ff9430b
Author: Luke Maurer <lmaurer@janestreet.com>
Date:   Wed Jan 15 11:31:22 2025 +0000

    Mangle instance symbol names using `____` rather than `___` (#3472)

    Apparently there are libraries around that have names ending in single
    underscores, leading to ambiguous symbol names if we use triple
    underscores to delimit instances. Other choices are possible but this PR
    opts for newly-developed quadruple-underscore technology.

commit 9984700
Author: Vincent Laviron <vincent.laviron@gmail.com>
Date:   Wed Jan 15 11:03:43 2025 +0100

    Port upstream PRs 11542 and 12505 to runtime4 (#3431)

    fix #11482: random crash in large closure allocation (#11542)

    Co-authored-by: Damien Doligez <damien.doligez@inria.fr>

commit 058c4db
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Tue Jan 14 22:19:32 2025 +0000

    Enable all makearray_dynamic tests on runtime4 (#3470)

commit ba15ee5
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 20:08:31 2025 +0000

    Vectorize [Ifloatarithmem] (#3452)

    * Add [Isimd_mem] to [Arch.Specific] and emit [addpd] with memory arg

    and similar instructions

    * Vectorize [Ifloatarithmem]

    When the memory alignment is known to be 128-bit (currently, never) emits
    [addpd], otherwise emits a vector load followed by an arithmetic
    instruction.

commit 9755b39
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 18:57:39 2025 +0000

    Fix CI failure (#3473)

commit 859949c
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 17:56:53 2025 +0000

    Vectorize [Specific.Istore_int] (#3450)

    Used for array initialization (amd64)

commit 50f73cb
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 17:38:39 2025 +0000

    Do not allow naked pointers (remove configure option) (#3448)

commit b7c8ad3
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 17:07:39 2025 +0000

    Vectorizer refactor heuristic for select_and_join (#3449)

    * Refactor [Block.find_last_instruction], cache [Computation.last_pos]

    * Improve heuristics in [Computation.select_and_join] using [last_pos]

commit 22f81d8
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Tue Jan 14 17:00:29 2025 +0000

    Fix mistake in conditional for makearray_dynamic array initialization (#3466)

commit aaaddfb
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 14:57:17 2025 +0000

    Vectorizer: propagate alignment of memory accesses (#3451)

    Currently it's always 8 but having this argument will help us
    consider alignment for new vector sequences.

commit b15d44e
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 14:55:29 2025 +0000

    vectorizer: improve debug printout (#3445)

commit 6239156
Author: Stephen Dolan <sdolan@janestreet.com>
Date:   Tue Jan 14 13:43:21 2025 +0000

    Better hugepage alignment of stacks and heap (#3384)

    Co-authored-by: Mark Shinwell <mshinwell@pm.me>

commit 677d79a
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 13:23:56 2025 +0000

    Backend dune copy and directive (#3467)

    * Remove unused line directive from [dune]

    * Use [copy_files#] to copy files from ARCH and add a file directive

    * Remove existing file directives

commit 314b131
Author: Stephen Dolan <sdolan@janestreet.com>
Date:   Tue Jan 14 11:58:41 2025 +0000

    Bound stack size in expect tests (#3439)

commit 02774f8
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 10:52:50 2025 +0000

    all_deps is reflexive (#3464)

commit 117a0a0
Author: Stephen Dolan <sdolan@janestreet.com>
Date:   Tue Jan 14 10:44:15 2025 +0000

    Stub implementation of new custom memory API (#3437)

commit 4f30aac
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Jan 14 10:31:48 2025 +0000

    Vectorizer bug fix: address argument of memory operations (#3446)

    Fix bug: use address arg of the first instruction in a group

    ... not the last!

    Only matters for arrays at the moment, where the address offset
    argument is not always the same register.

commit cc91e2b
Author: Vincent Laviron <vincent.laviron@gmail.com>
Date:   Tue Jan 14 11:26:59 2025 +0100

    caml_update_dummy: fail on closure blocks (#3429)

commit 17a01a9
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Tue Jan 14 10:07:39 2025 +0000

    Implement %array_element_size_in_bytes (#3367)

    Co-authored-by: Chris Casinghino <ccasinghino@janestreet.com>

commit b487f71
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Mon Jan 13 14:05:25 2025 +0000

    Runtime: make types explicit when reading [gc_regs] (#3453)

    Runtime4: make types explicit when reading [gc_regs].

commit 67e6eb3
Author: Max Slater <max@thenumb.at>
Date:   Fri Jan 10 16:17:32 2025 -0500

    More capsule API updates (#3440)

commit c7f573f
Author: Mark Shinwell <mshinwell@pm.me>
Date:   Fri Jan 10 18:26:15 2025 +0000

    Reinstate %makearray_dynamic (#3460)

commit e1e4fb8
Author: Zesen Qian <riaqn@users.noreply.github.com>
Date:   Fri Jan 10 16:15:48 2025 +0000

    `portable` lazy allows `nonportable` thunk (#3436)

    * portable lazy allows nonportable thunk

    * add documentation

    * improve documentation

    * add examples

    * improve comments in test

    * say "not stronger"

commit c30ec74
Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
Date:   Fri Jan 10 10:41:08 2025 -0500

    Check for type recursion without boxing (#3407)

commit cb290c5
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Fri Jan 10 11:00:32 2025 +0000

    Vectorizer: rename New (#3454)

    Rename New to New_vec128 to make the type clear

    and distinguish it from the upcoming Valx2

commit bd39e02
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Fri Jan 10 10:24:48 2025 +0000

    Add function [DLL.for_all_i] (#3442)

    * Add function [DLL.for_all_i]

    * Rename to [for_alli] to match existing [mapi] and [iteri]

    * Remove unused argument of [aux] in [DLL.for_all*]

commit c048920
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Thu Jan 9 13:16:36 2025 +0000

    Cleanup machtype_component size (#3441)

    Cleanup size_component

commit 830d5e7
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Thu Jan 9 13:15:59 2025 +0000

    Add "dump-vectorize" to OCAMLPARAM (#3443)

    Add [dump-vectorize] to OCAMLPARAM for debugging

commit 157c95e
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Thu Jan 9 13:15:33 2025 +0000

    Vectorizer bug fix: 128-bit vectorized constant   (#3447)

    Fix bug: 128-bit vectorized constant high/low correctly ordered

commit 648155d
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Thu Jan 9 13:09:48 2025 +0000

    Add [Printreg.reglist] for debugging (#3444)

commit d40254f
Author: Stephen Dolan <sdolan@janestreet.com>
Date:   Tue Jan 7 21:25:45 2025 +0000

    Move two misplaced files (#3435)

commit 4a0bb69
Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
Date:   Tue Jan 7 15:34:27 2025 -0500

    `Yielding` mode axis (#3283)

    * `Yielding` mode axis

    * Tests

    * fix printing

    ---------

    Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

commit 00275e0
Author: Max Slater <max@thenumb.at>
Date:   Mon Jan 6 13:05:58 2025 -0500

    Unbox_float32 should check custom ops name (#3433)

    check sym name

commit 2e49469
Author: Max Slater <max@thenumb.at>
Date:   Mon Jan 6 13:05:03 2025 -0500

    Make Capsule preserve wrapped exception backtraces (#3421)

    * with_password

    * portable

    * don't use polymorphic parameters

    * review

    * protect encapsulated from other capsule

    * raise wrapped exceptions with existing backtrace

    * cr

commit 2de23a5
Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
Date:   Mon Jan 6 04:04:29 2025 -0500

    Fix CI by using `setup-ocaml` v3 for ocamlformat workflow (#3426)

    [CI] Use setup-ocaml v3 for ocamlformat workflow

commit eada0f1
Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
Date:   Fri Jan 3 21:23:23 2025 -0500

    Move unboxed records to stable (#3419)

commit a273a33
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 3 11:17:18 2025 -0500

    Changed make fmt to run in parallel (#3422)

    changed make fmt to run in parallel

commit 4de5a72
Author: Max Slater <max@thenumb.at>
Date:   Thu Jan 2 20:10:08 2025 -0500

    Add `Capsule.with_password` (#3420)

commit b084ff3
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Wed Jan 1 15:34:11 2025 +0000

    vectorizer: new test (#3418)

    Add test for register compatiblity

commit 5549015
Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
Date:   Tue Dec 31 17:20:56 2024 +0000

    Vectorizer: check register compatibility (#3412)

    Check that registers are compatible when joining computations
jvanburen added a commit that referenced this pull request Jan 22, 2025
commit 7c5c7f0
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 15:24:10 2025 -0500

    Squashed commit of the following:

    commit a53391d
    Author: Max Slater <max@thenumb.at>
    Date:   Wed Jan 22 13:53:02 2025 -0500

        Rename `atomic_cas`/`Compare_and_swap` (#3491)

    commit 92b327c
    Author: Max Slater <max@thenumb.at>
    Date:   Tue Jan 21 14:18:56 2025 -0500

        Additional operations for int atomics (#3490)

    commit 38e792c
    Author: Luke Maurer <lmaurer@janestreet.com>
    Date:   Tue Jan 21 17:09:23 2025 +0000

        Support `-open Foo` where `Foo` is parameterised (#3489)

        The command line

        ```
        ocamlopt -open Foo -parameter P -c bar.ml
        ```

        should be fine, even if `Foo` is itself parameterised by `P`: as usual, we
        compile `bar.ml` as if it began with `open! Foo`, and by the subset rule, `Bar`
        can refer to `Foo` because it takes at least the same parameters. Unfortunately,
        currently we process `-open` before `-parameter`, so when we go to check the
        implicit reference to `Foo`, we think there are no parameters, and we report an
        error. (Confusingly, the error suggests that the user add `-parameter P` to the
        command line.)

        The fix is simple: move the code that processes `-parameter` earlier so that
        the initial environment is constructed with the parameters already available.

    commit 784dc96
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 21 14:07:41 2025 +0000

        Rename [emit.mlp] to [emit.ml] on amd64 (#3488)

    commit f3b720a
    Author: Zesen Qian <riaqn@users.noreply.github.com>
    Date:   Tue Jan 21 10:35:35 2025 +0000

        Module aliases save locks instead of walking them immediately (#3398)

    commit 389a7c3
    Author: Nick Barnes <Nick.Barnes@pobox.com>
    Date:   Mon Jan 20 17:55:51 2025 +0000

        Add OCAMLRUNPARAM d= parameter for max # domains (#3487)

        Allow maximum number of domains to be specified as a OCAMLRUNPARAM parameter.

        (cherry picked from commit f92715f)

        Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>

    commit 63767d7
    Author: Nick Barnes <Nick.Barnes@pobox.com>
    Date:   Mon Jan 20 17:45:30 2025 +0000

        Add caml_runtime_parameters back (#3468)

        Add caml_runtime_parameters back.

    commit 5e9975e
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Mon Jan 20 17:15:15 2025 +0000

        Emit atomic compare and exchange (#3486)

    commit a9821e8
    Author: Basile Clément <129742207+bclement-ocp@users.noreply.github.com>
    Date:   Mon Jan 20 15:36:09 2025 +0100

        Make patricia trees big-endian (#3438)

        This patch switches up the implementation of the `Patricia_tree` module
        from little-endian to big-endian, with the main motivation to be able to
        implement in-order traversal.

        The `caml_int_clz_tagged_to_untagged` and `caml_int_tagged_to_tagged` C
        stubs are recognized and replaced with the `clz` instruction when
        compiling with flambda2, so they are only used in the boot compiler.

    commit b8a9789
    Author: Leo White <leo@lpw25.net>
    Date:   Fri Jan 17 13:35:19 2025 +0000

        Generate specific instructions for atomics on immediates (#3477)

        * Generate specific instructions for atomics on immediates

        * Fix formatting

    commit 7b93134
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Fri Jan 17 09:30:30 2025 +0000

        Vectorizer: add tests (#3456)

        * Add tests

        * Disable ocamlformat on unboxed tests

        * Increase -vectorize-max-block-size for tests

        * Fix asssertion failure when vectorizing unboxed int32

        * Disable float32 on arm64 (not yet implemented)

        * improve gen_dune.ml for the vectorizer tests

        Co-authored-by: Xavier Clerc <xclerc@users.noreply.github.com>

    commit 6379678
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Thu Jan 16 16:08:29 2025 +0000

        Add "-ocamlrunparam" linker flag (#3483)

    commit f7b2cbe
    Author: Xavier Clerc <xclerc@users.noreply.github.com>
    Date:   Thu Jan 16 15:25:28 2025 +0000

        Bump the version of `actions/upload-artifact` (#3474)

        * Bump the version of actions/upload-artifact.

        * Ensure artifact names are unique.

        * To trigger CI.

        * Try with commit hash.

    commit afb8a55
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Thu Jan 16 14:03:37 2025 +0000

        Move two macOS CI controllers to runtime5 (#3482)

    commit aae5c40
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Thu Jan 16 13:50:34 2025 +0000

        Fix error in caml_get_init_stack_wsize (#3481)

    commit 525868c
    Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
    Date:   Wed Jan 15 17:47:30 2025 -0500

        Use null pointers for `or_null`  (#3267)

        * runtime changes

        * runtime4 changes

        * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

        * make `Is_block` an inline function

        * redefine `Is_long`

        * fix

        * Change `CODE_UNBOXED_INT64` back

        * optimize `Is_block`/`Is_long`

        * `null_tag` for `caml_obj_tag`

        * consistent naming

        * slightly more reassuring comment

        * `inline` is unnecessary and might break `#define inline`

        * optimization incorrect in presence of nulls

        * Constructors and pattern-matching

        * Bytecode compilation

        * `or_null` is `Variant_or_null`

        * Accept tests

        * Runtime tests

        * Delete obsolete or_null test

        ---------

        Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

    commit 9796b21
    Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
    Date:   Wed Jan 15 17:47:13 2025 -0500

        Runtime changes for `or_null` (#3265)

        * runtime changes

        * runtime4 changes

        * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

        * make `Is_block` an inline function

        * redefine `Is_long`

        * fix

        * Change `CODE_UNBOXED_INT64` back

        * optimize `Is_block`/`Is_long`

        * `null_tag` for `caml_obj_tag`

        * consistent naming

        * slightly more reassuring comment

        * `inline` is unnecessary and might break `#define inline`

        * optimization incorrect in presence of nulls

        ---------

        Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

    commit df4a6e0
    Author: Chris Casinghino <ccasinghino@janestreet.com>
    Date:   Wed Jan 15 13:08:53 2025 -0500

        Bump magic numbers for 5.2.0minus-5 (#3478)

    commit d1c8d85
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Wed Jan 15 16:44:39 2025 +0000

        Peek and poke (#3309)

    commit f8caad4
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Wed Jan 15 16:00:39 2025 +0000

        Vectorizer: xmm register can hold ocaml values (#3455)

        * Add [Valx2] to [Cmm.machtype_component]

        * Vectorizer generates [Valx2]

        * Record live offsets of [Valx2] in the frametable

        For runtime4, xmm register are below [gc_regs], use negative offsets.

        * Move [types_are_compatible] from [Reg] to [Proc]

        This information has to be in sync with register classes, stack
        slock classes, and emit for move instructions.

    commit 34a7873
    Author: Zesen Qian <riaqn@users.noreply.github.com>
    Date:   Wed Jan 15 13:13:18 2025 +0000

        Improve coherence of modality zapping (#3462)

    commit 1a6a9d3
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Wed Jan 15 12:06:24 2025 +0000

        Fix caml_obj_with_tag (#3465)

    commit bc5110a
    Author: Nick Barnes <Nick.Barnes@pobox.com>
    Date:   Wed Jan 15 11:52:25 2025 +0000

        Reset the pacing of major collection after any synchronous major GC (#3463)

        Reset the pacing of major collection at the end of any synchronous major collection.

    commit 9faf700
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Wed Jan 15 11:32:59 2025 +0000

        Remove remnants of caml_obj_truncate (#3469)

    commit ff9430b
    Author: Luke Maurer <lmaurer@janestreet.com>
    Date:   Wed Jan 15 11:31:22 2025 +0000

        Mangle instance symbol names using `____` rather than `___` (#3472)

        Apparently there are libraries around that have names ending in single
        underscores, leading to ambiguous symbol names if we use triple
        underscores to delimit instances. Other choices are possible but this PR
        opts for newly-developed quadruple-underscore technology.

    commit 9984700
    Author: Vincent Laviron <vincent.laviron@gmail.com>
    Date:   Wed Jan 15 11:03:43 2025 +0100

        Port upstream PRs 11542 and 12505 to runtime4 (#3431)

        fix #11482: random crash in large closure allocation (#11542)

        Co-authored-by: Damien Doligez <damien.doligez@inria.fr>

    commit 058c4db
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Tue Jan 14 22:19:32 2025 +0000

        Enable all makearray_dynamic tests on runtime4 (#3470)

    commit ba15ee5
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 20:08:31 2025 +0000

        Vectorize [Ifloatarithmem] (#3452)

        * Add [Isimd_mem] to [Arch.Specific] and emit [addpd] with memory arg

        and similar instructions

        * Vectorize [Ifloatarithmem]

        When the memory alignment is known to be 128-bit (currently, never) emits
        [addpd], otherwise emits a vector load followed by an arithmetic
        instruction.

    commit 9755b39
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 18:57:39 2025 +0000

        Fix CI failure (#3473)

    commit 859949c
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 17:56:53 2025 +0000

        Vectorize [Specific.Istore_int] (#3450)

        Used for array initialization (amd64)

    commit 50f73cb
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 17:38:39 2025 +0000

        Do not allow naked pointers (remove configure option) (#3448)

    commit b7c8ad3
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 17:07:39 2025 +0000

        Vectorizer refactor heuristic for select_and_join (#3449)

        * Refactor [Block.find_last_instruction], cache [Computation.last_pos]

        * Improve heuristics in [Computation.select_and_join] using [last_pos]

    commit 22f81d8
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Tue Jan 14 17:00:29 2025 +0000

        Fix mistake in conditional for makearray_dynamic array initialization (#3466)

    commit aaaddfb
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 14:57:17 2025 +0000

        Vectorizer: propagate alignment of memory accesses (#3451)

        Currently it's always 8 but having this argument will help us
        consider alignment for new vector sequences.

    commit b15d44e
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 14:55:29 2025 +0000

        vectorizer: improve debug printout (#3445)

    commit 6239156
    Author: Stephen Dolan <sdolan@janestreet.com>
    Date:   Tue Jan 14 13:43:21 2025 +0000

        Better hugepage alignment of stacks and heap (#3384)

        Co-authored-by: Mark Shinwell <mshinwell@pm.me>

    commit 677d79a
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 13:23:56 2025 +0000

        Backend dune copy and directive (#3467)

        * Remove unused line directive from [dune]

        * Use [copy_files#] to copy files from ARCH and add a file directive

        * Remove existing file directives

    commit 314b131
    Author: Stephen Dolan <sdolan@janestreet.com>
    Date:   Tue Jan 14 11:58:41 2025 +0000

        Bound stack size in expect tests (#3439)

    commit 02774f8
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 10:52:50 2025 +0000

        all_deps is reflexive (#3464)

    commit 117a0a0
    Author: Stephen Dolan <sdolan@janestreet.com>
    Date:   Tue Jan 14 10:44:15 2025 +0000

        Stub implementation of new custom memory API (#3437)

    commit 4f30aac
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Jan 14 10:31:48 2025 +0000

        Vectorizer bug fix: address argument of memory operations (#3446)

        Fix bug: use address arg of the first instruction in a group

        ... not the last!

        Only matters for arrays at the moment, where the address offset
        argument is not always the same register.

    commit cc91e2b
    Author: Vincent Laviron <vincent.laviron@gmail.com>
    Date:   Tue Jan 14 11:26:59 2025 +0100

        caml_update_dummy: fail on closure blocks (#3429)

    commit 17a01a9
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Tue Jan 14 10:07:39 2025 +0000

        Implement %array_element_size_in_bytes (#3367)

        Co-authored-by: Chris Casinghino <ccasinghino@janestreet.com>

    commit b487f71
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Mon Jan 13 14:05:25 2025 +0000

        Runtime: make types explicit when reading [gc_regs] (#3453)

        Runtime4: make types explicit when reading [gc_regs].

    commit 67e6eb3
    Author: Max Slater <max@thenumb.at>
    Date:   Fri Jan 10 16:17:32 2025 -0500

        More capsule API updates (#3440)

    commit c7f573f
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Fri Jan 10 18:26:15 2025 +0000

        Reinstate %makearray_dynamic (#3460)

    commit e1e4fb8
    Author: Zesen Qian <riaqn@users.noreply.github.com>
    Date:   Fri Jan 10 16:15:48 2025 +0000

        `portable` lazy allows `nonportable` thunk (#3436)

        * portable lazy allows nonportable thunk

        * add documentation

        * improve documentation

        * add examples

        * improve comments in test

        * say "not stronger"

    commit c30ec74
    Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
    Date:   Fri Jan 10 10:41:08 2025 -0500

        Check for type recursion without boxing (#3407)

    commit cb290c5
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Fri Jan 10 11:00:32 2025 +0000

        Vectorizer: rename New (#3454)

        Rename New to New_vec128 to make the type clear

        and distinguish it from the upcoming Valx2

    commit bd39e02
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Fri Jan 10 10:24:48 2025 +0000

        Add function [DLL.for_all_i] (#3442)

        * Add function [DLL.for_all_i]

        * Rename to [for_alli] to match existing [mapi] and [iteri]

        * Remove unused argument of [aux] in [DLL.for_all*]

    commit c048920
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Thu Jan 9 13:16:36 2025 +0000

        Cleanup machtype_component size (#3441)

        Cleanup size_component

    commit 830d5e7
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Thu Jan 9 13:15:59 2025 +0000

        Add "dump-vectorize" to OCAMLPARAM (#3443)

        Add [dump-vectorize] to OCAMLPARAM for debugging

    commit 157c95e
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Thu Jan 9 13:15:33 2025 +0000

        Vectorizer bug fix: 128-bit vectorized constant   (#3447)

        Fix bug: 128-bit vectorized constant high/low correctly ordered

    commit 648155d
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Thu Jan 9 13:09:48 2025 +0000

        Add [Printreg.reglist] for debugging (#3444)

    commit d40254f
    Author: Stephen Dolan <sdolan@janestreet.com>
    Date:   Tue Jan 7 21:25:45 2025 +0000

        Move two misplaced files (#3435)

    commit 4a0bb69
    Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
    Date:   Tue Jan 7 15:34:27 2025 -0500

        `Yielding` mode axis (#3283)

        * `Yielding` mode axis

        * Tests

        * fix printing

        ---------

        Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

    commit 00275e0
    Author: Max Slater <max@thenumb.at>
    Date:   Mon Jan 6 13:05:58 2025 -0500

        Unbox_float32 should check custom ops name (#3433)

        check sym name

    commit 2e49469
    Author: Max Slater <max@thenumb.at>
    Date:   Mon Jan 6 13:05:03 2025 -0500

        Make Capsule preserve wrapped exception backtraces (#3421)

        * with_password

        * portable

        * don't use polymorphic parameters

        * review

        * protect encapsulated from other capsule

        * raise wrapped exceptions with existing backtrace

        * cr

    commit 2de23a5
    Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
    Date:   Mon Jan 6 04:04:29 2025 -0500

        Fix CI by using `setup-ocaml` v3 for ocamlformat workflow (#3426)

        [CI] Use setup-ocaml v3 for ocamlformat workflow

    commit eada0f1
    Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
    Date:   Fri Jan 3 21:23:23 2025 -0500

        Move unboxed records to stable (#3419)

    commit a273a33
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 3 11:17:18 2025 -0500

        Changed make fmt to run in parallel (#3422)

        changed make fmt to run in parallel

    commit 4de5a72
    Author: Max Slater <max@thenumb.at>
    Date:   Thu Jan 2 20:10:08 2025 -0500

        Add `Capsule.with_password` (#3420)

    commit b084ff3
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Wed Jan 1 15:34:11 2025 +0000

        vectorizer: new test (#3418)

        Add test for register compatiblity

    commit 5549015
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Dec 31 17:20:56 2024 +0000

        Vectorizer: check register compatibility (#3412)

        Check that registers are compatible when joining computations
jvanburen added a commit that referenced this pull request Jan 22, 2025
commit 16f1b23
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 15:25:23 2025 -0500

    Squashed commit of the following:

    commit 7c5c7f0
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 15:24:10 2025 -0500

        Squashed commit of the following:

        commit a53391d
        Author: Max Slater <max@thenumb.at>
        Date:   Wed Jan 22 13:53:02 2025 -0500

            Rename `atomic_cas`/`Compare_and_swap` (#3491)

        commit 92b327c
        Author: Max Slater <max@thenumb.at>
        Date:   Tue Jan 21 14:18:56 2025 -0500

            Additional operations for int atomics (#3490)

        commit 38e792c
        Author: Luke Maurer <lmaurer@janestreet.com>
        Date:   Tue Jan 21 17:09:23 2025 +0000

            Support `-open Foo` where `Foo` is parameterised (#3489)

            The command line

            ```
            ocamlopt -open Foo -parameter P -c bar.ml
            ```

            should be fine, even if `Foo` is itself parameterised by `P`: as usual, we
            compile `bar.ml` as if it began with `open! Foo`, and by the subset rule, `Bar`
            can refer to `Foo` because it takes at least the same parameters. Unfortunately,
            currently we process `-open` before `-parameter`, so when we go to check the
            implicit reference to `Foo`, we think there are no parameters, and we report an
            error. (Confusingly, the error suggests that the user add `-parameter P` to the
            command line.)

            The fix is simple: move the code that processes `-parameter` earlier so that
            the initial environment is constructed with the parameters already available.

        commit 784dc96
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 21 14:07:41 2025 +0000

            Rename [emit.mlp] to [emit.ml] on amd64 (#3488)

        commit f3b720a
        Author: Zesen Qian <riaqn@users.noreply.github.com>
        Date:   Tue Jan 21 10:35:35 2025 +0000

            Module aliases save locks instead of walking them immediately (#3398)

        commit 389a7c3
        Author: Nick Barnes <Nick.Barnes@pobox.com>
        Date:   Mon Jan 20 17:55:51 2025 +0000

            Add OCAMLRUNPARAM d= parameter for max # domains (#3487)

            Allow maximum number of domains to be specified as a OCAMLRUNPARAM parameter.

            (cherry picked from commit f92715f)

            Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>

        commit 63767d7
        Author: Nick Barnes <Nick.Barnes@pobox.com>
        Date:   Mon Jan 20 17:45:30 2025 +0000

            Add caml_runtime_parameters back (#3468)

            Add caml_runtime_parameters back.

        commit 5e9975e
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Mon Jan 20 17:15:15 2025 +0000

            Emit atomic compare and exchange (#3486)

        commit a9821e8
        Author: Basile Clément <129742207+bclement-ocp@users.noreply.github.com>
        Date:   Mon Jan 20 15:36:09 2025 +0100

            Make patricia trees big-endian (#3438)

            This patch switches up the implementation of the `Patricia_tree` module
            from little-endian to big-endian, with the main motivation to be able to
            implement in-order traversal.

            The `caml_int_clz_tagged_to_untagged` and `caml_int_tagged_to_tagged` C
            stubs are recognized and replaced with the `clz` instruction when
            compiling with flambda2, so they are only used in the boot compiler.

        commit b8a9789
        Author: Leo White <leo@lpw25.net>
        Date:   Fri Jan 17 13:35:19 2025 +0000

            Generate specific instructions for atomics on immediates (#3477)

            * Generate specific instructions for atomics on immediates

            * Fix formatting

        commit 7b93134
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Fri Jan 17 09:30:30 2025 +0000

            Vectorizer: add tests (#3456)

            * Add tests

            * Disable ocamlformat on unboxed tests

            * Increase -vectorize-max-block-size for tests

            * Fix asssertion failure when vectorizing unboxed int32

            * Disable float32 on arm64 (not yet implemented)

            * improve gen_dune.ml for the vectorizer tests

            Co-authored-by: Xavier Clerc <xclerc@users.noreply.github.com>

        commit 6379678
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Thu Jan 16 16:08:29 2025 +0000

            Add "-ocamlrunparam" linker flag (#3483)

        commit f7b2cbe
        Author: Xavier Clerc <xclerc@users.noreply.github.com>
        Date:   Thu Jan 16 15:25:28 2025 +0000

            Bump the version of `actions/upload-artifact` (#3474)

            * Bump the version of actions/upload-artifact.

            * Ensure artifact names are unique.

            * To trigger CI.

            * Try with commit hash.

        commit afb8a55
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Thu Jan 16 14:03:37 2025 +0000

            Move two macOS CI controllers to runtime5 (#3482)

        commit aae5c40
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Thu Jan 16 13:50:34 2025 +0000

            Fix error in caml_get_init_stack_wsize (#3481)

        commit 525868c
        Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
        Date:   Wed Jan 15 17:47:30 2025 -0500

            Use null pointers for `or_null`  (#3267)

            * runtime changes

            * runtime4 changes

            * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

            * make `Is_block` an inline function

            * redefine `Is_long`

            * fix

            * Change `CODE_UNBOXED_INT64` back

            * optimize `Is_block`/`Is_long`

            * `null_tag` for `caml_obj_tag`

            * consistent naming

            * slightly more reassuring comment

            * `inline` is unnecessary and might break `#define inline`

            * optimization incorrect in presence of nulls

            * Constructors and pattern-matching

            * Bytecode compilation

            * `or_null` is `Variant_or_null`

            * Accept tests

            * Runtime tests

            * Delete obsolete or_null test

            ---------

            Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

        commit 9796b21
        Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
        Date:   Wed Jan 15 17:47:13 2025 -0500

            Runtime changes for `or_null` (#3265)

            * runtime changes

            * runtime4 changes

            * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

            * make `Is_block` an inline function

            * redefine `Is_long`

            * fix

            * Change `CODE_UNBOXED_INT64` back

            * optimize `Is_block`/`Is_long`

            * `null_tag` for `caml_obj_tag`

            * consistent naming

            * slightly more reassuring comment

            * `inline` is unnecessary and might break `#define inline`

            * optimization incorrect in presence of nulls

            ---------

            Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

        commit df4a6e0
        Author: Chris Casinghino <ccasinghino@janestreet.com>
        Date:   Wed Jan 15 13:08:53 2025 -0500

            Bump magic numbers for 5.2.0minus-5 (#3478)

        commit d1c8d85
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Wed Jan 15 16:44:39 2025 +0000

            Peek and poke (#3309)

        commit f8caad4
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Wed Jan 15 16:00:39 2025 +0000

            Vectorizer: xmm register can hold ocaml values (#3455)

            * Add [Valx2] to [Cmm.machtype_component]

            * Vectorizer generates [Valx2]

            * Record live offsets of [Valx2] in the frametable

            For runtime4, xmm register are below [gc_regs], use negative offsets.

            * Move [types_are_compatible] from [Reg] to [Proc]

            This information has to be in sync with register classes, stack
            slock classes, and emit for move instructions.

        commit 34a7873
        Author: Zesen Qian <riaqn@users.noreply.github.com>
        Date:   Wed Jan 15 13:13:18 2025 +0000

            Improve coherence of modality zapping (#3462)

        commit 1a6a9d3
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Wed Jan 15 12:06:24 2025 +0000

            Fix caml_obj_with_tag (#3465)

        commit bc5110a
        Author: Nick Barnes <Nick.Barnes@pobox.com>
        Date:   Wed Jan 15 11:52:25 2025 +0000

            Reset the pacing of major collection after any synchronous major GC (#3463)

            Reset the pacing of major collection at the end of any synchronous major collection.

        commit 9faf700
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Wed Jan 15 11:32:59 2025 +0000

            Remove remnants of caml_obj_truncate (#3469)

        commit ff9430b
        Author: Luke Maurer <lmaurer@janestreet.com>
        Date:   Wed Jan 15 11:31:22 2025 +0000

            Mangle instance symbol names using `____` rather than `___` (#3472)

            Apparently there are libraries around that have names ending in single
            underscores, leading to ambiguous symbol names if we use triple
            underscores to delimit instances. Other choices are possible but this PR
            opts for newly-developed quadruple-underscore technology.

        commit 9984700
        Author: Vincent Laviron <vincent.laviron@gmail.com>
        Date:   Wed Jan 15 11:03:43 2025 +0100

            Port upstream PRs 11542 and 12505 to runtime4 (#3431)

            fix #11482: random crash in large closure allocation (#11542)

            Co-authored-by: Damien Doligez <damien.doligez@inria.fr>

        commit 058c4db
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Tue Jan 14 22:19:32 2025 +0000

            Enable all makearray_dynamic tests on runtime4 (#3470)

        commit ba15ee5
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 20:08:31 2025 +0000

            Vectorize [Ifloatarithmem] (#3452)

            * Add [Isimd_mem] to [Arch.Specific] and emit [addpd] with memory arg

            and similar instructions

            * Vectorize [Ifloatarithmem]

            When the memory alignment is known to be 128-bit (currently, never) emits
            [addpd], otherwise emits a vector load followed by an arithmetic
            instruction.

        commit 9755b39
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 18:57:39 2025 +0000

            Fix CI failure (#3473)

        commit 859949c
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 17:56:53 2025 +0000

            Vectorize [Specific.Istore_int] (#3450)

            Used for array initialization (amd64)

        commit 50f73cb
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 17:38:39 2025 +0000

            Do not allow naked pointers (remove configure option) (#3448)

        commit b7c8ad3
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 17:07:39 2025 +0000

            Vectorizer refactor heuristic for select_and_join (#3449)

            * Refactor [Block.find_last_instruction], cache [Computation.last_pos]

            * Improve heuristics in [Computation.select_and_join] using [last_pos]

        commit 22f81d8
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Tue Jan 14 17:00:29 2025 +0000

            Fix mistake in conditional for makearray_dynamic array initialization (#3466)

        commit aaaddfb
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 14:57:17 2025 +0000

            Vectorizer: propagate alignment of memory accesses (#3451)

            Currently it's always 8 but having this argument will help us
            consider alignment for new vector sequences.

        commit b15d44e
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 14:55:29 2025 +0000

            vectorizer: improve debug printout (#3445)

        commit 6239156
        Author: Stephen Dolan <sdolan@janestreet.com>
        Date:   Tue Jan 14 13:43:21 2025 +0000

            Better hugepage alignment of stacks and heap (#3384)

            Co-authored-by: Mark Shinwell <mshinwell@pm.me>

        commit 677d79a
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 13:23:56 2025 +0000

            Backend dune copy and directive (#3467)

            * Remove unused line directive from [dune]

            * Use [copy_files#] to copy files from ARCH and add a file directive

            * Remove existing file directives

        commit 314b131
        Author: Stephen Dolan <sdolan@janestreet.com>
        Date:   Tue Jan 14 11:58:41 2025 +0000

            Bound stack size in expect tests (#3439)

        commit 02774f8
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 10:52:50 2025 +0000

            all_deps is reflexive (#3464)

        commit 117a0a0
        Author: Stephen Dolan <sdolan@janestreet.com>
        Date:   Tue Jan 14 10:44:15 2025 +0000

            Stub implementation of new custom memory API (#3437)

        commit 4f30aac
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 10:31:48 2025 +0000

            Vectorizer bug fix: address argument of memory operations (#3446)

            Fix bug: use address arg of the first instruction in a group

            ... not the last!

            Only matters for arrays at the moment, where the address offset
            argument is not always the same register.

        commit cc91e2b
        Author: Vincent Laviron <vincent.laviron@gmail.com>
        Date:   Tue Jan 14 11:26:59 2025 +0100

            caml_update_dummy: fail on closure blocks (#3429)

        commit 17a01a9
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Tue Jan 14 10:07:39 2025 +0000

            Implement %array_element_size_in_bytes (#3367)

            Co-authored-by: Chris Casinghino <ccasinghino@janestreet.com>

        commit b487f71
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Mon Jan 13 14:05:25 2025 +0000

            Runtime: make types explicit when reading [gc_regs] (#3453)

            Runtime4: make types explicit when reading [gc_regs].

        commit 67e6eb3
        Author: Max Slater <max@thenumb.at>
        Date:   Fri Jan 10 16:17:32 2025 -0500

            More capsule API updates (#3440)

        commit c7f573f
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Fri Jan 10 18:26:15 2025 +0000

            Reinstate %makearray_dynamic (#3460)

        commit e1e4fb8
        Author: Zesen Qian <riaqn@users.noreply.github.com>
        Date:   Fri Jan 10 16:15:48 2025 +0000

            `portable` lazy allows `nonportable` thunk (#3436)

            * portable lazy allows nonportable thunk

            * add documentation

            * improve documentation

            * add examples

            * improve comments in test

            * say "not stronger"

        commit c30ec74
        Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
        Date:   Fri Jan 10 10:41:08 2025 -0500

            Check for type recursion without boxing (#3407)

        commit cb290c5
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Fri Jan 10 11:00:32 2025 +0000

            Vectorizer: rename New (#3454)

            Rename New to New_vec128 to make the type clear

            and distinguish it from the upcoming Valx2

        commit bd39e02
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Fri Jan 10 10:24:48 2025 +0000

            Add function [DLL.for_all_i] (#3442)

            * Add function [DLL.for_all_i]

            * Rename to [for_alli] to match existing [mapi] and [iteri]

            * Remove unused argument of [aux] in [DLL.for_all*]

        commit c048920
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Thu Jan 9 13:16:36 2025 +0000

            Cleanup machtype_component size (#3441)

            Cleanup size_component

        commit 830d5e7
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Thu Jan 9 13:15:59 2025 +0000

            Add "dump-vectorize" to OCAMLPARAM (#3443)

            Add [dump-vectorize] to OCAMLPARAM for debugging

        commit 157c95e
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Thu Jan 9 13:15:33 2025 +0000

            Vectorizer bug fix: 128-bit vectorized constant   (#3447)

            Fix bug: 128-bit vectorized constant high/low correctly ordered

        commit 648155d
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Thu Jan 9 13:09:48 2025 +0000

            Add [Printreg.reglist] for debugging (#3444)

        commit d40254f
        Author: Stephen Dolan <sdolan@janestreet.com>
        Date:   Tue Jan 7 21:25:45 2025 +0000

            Move two misplaced files (#3435)

        commit 4a0bb69
        Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
        Date:   Tue Jan 7 15:34:27 2025 -0500

            `Yielding` mode axis (#3283)

            * `Yielding` mode axis

            * Tests

            * fix printing

            ---------

            Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

        commit 00275e0
        Author: Max Slater <max@thenumb.at>
        Date:   Mon Jan 6 13:05:58 2025 -0500

            Unbox_float32 should check custom ops name (#3433)

            check sym name

        commit 2e49469
        Author: Max Slater <max@thenumb.at>
        Date:   Mon Jan 6 13:05:03 2025 -0500

            Make Capsule preserve wrapped exception backtraces (#3421)

            * with_password

            * portable

            * don't use polymorphic parameters

            * review

            * protect encapsulated from other capsule

            * raise wrapped exceptions with existing backtrace

            * cr

        commit 2de23a5
        Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
        Date:   Mon Jan 6 04:04:29 2025 -0500

            Fix CI by using `setup-ocaml` v3 for ocamlformat workflow (#3426)

            [CI] Use setup-ocaml v3 for ocamlformat workflow

        commit eada0f1
        Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
        Date:   Fri Jan 3 21:23:23 2025 -0500

            Move unboxed records to stable (#3419)

        commit a273a33
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Fri Jan 3 11:17:18 2025 -0500

            Changed make fmt to run in parallel (#3422)

            changed make fmt to run in parallel

        commit 4de5a72
        Author: Max Slater <max@thenumb.at>
        Date:   Thu Jan 2 20:10:08 2025 -0500

            Add `Capsule.with_password` (#3420)

        commit b084ff3
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Wed Jan 1 15:34:11 2025 +0000

            vectorizer: new test (#3418)

            Add test for register compatiblity

        commit 5549015
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Dec 31 17:20:56 2024 +0000

            Vectorizer: check register compatibility (#3412)

            Check that registers are compatible when joining computations
jvanburen added a commit that referenced this pull request Jan 22, 2025
commit 34a5e6a
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 15:26:17 2025 -0500

    Squashed commit of the following:

    commit 16f1b23
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 15:25:23 2025 -0500

        Squashed commit of the following:

        commit 7c5c7f0
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Wed Jan 22 15:24:10 2025 -0500

            Squashed commit of the following:

            commit a53391d
            Author: Max Slater <max@thenumb.at>
            Date:   Wed Jan 22 13:53:02 2025 -0500

                Rename `atomic_cas`/`Compare_and_swap` (#3491)

            commit 92b327c
            Author: Max Slater <max@thenumb.at>
            Date:   Tue Jan 21 14:18:56 2025 -0500

                Additional operations for int atomics (#3490)

            commit 38e792c
            Author: Luke Maurer <lmaurer@janestreet.com>
            Date:   Tue Jan 21 17:09:23 2025 +0000

                Support `-open Foo` where `Foo` is parameterised (#3489)

                The command line

                ```
                ocamlopt -open Foo -parameter P -c bar.ml
                ```

                should be fine, even if `Foo` is itself parameterised by `P`: as usual, we
                compile `bar.ml` as if it began with `open! Foo`, and by the subset rule, `Bar`
                can refer to `Foo` because it takes at least the same parameters. Unfortunately,
                currently we process `-open` before `-parameter`, so when we go to check the
                implicit reference to `Foo`, we think there are no parameters, and we report an
                error. (Confusingly, the error suggests that the user add `-parameter P` to the
                command line.)

                The fix is simple: move the code that processes `-parameter` earlier so that
                the initial environment is constructed with the parameters already available.

            commit 784dc96
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 21 14:07:41 2025 +0000

                Rename [emit.mlp] to [emit.ml] on amd64 (#3488)

            commit f3b720a
            Author: Zesen Qian <riaqn@users.noreply.github.com>
            Date:   Tue Jan 21 10:35:35 2025 +0000

                Module aliases save locks instead of walking them immediately (#3398)

            commit 389a7c3
            Author: Nick Barnes <Nick.Barnes@pobox.com>
            Date:   Mon Jan 20 17:55:51 2025 +0000

                Add OCAMLRUNPARAM d= parameter for max # domains (#3487)

                Allow maximum number of domains to be specified as a OCAMLRUNPARAM parameter.

                (cherry picked from commit f92715f)

                Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>

            commit 63767d7
            Author: Nick Barnes <Nick.Barnes@pobox.com>
            Date:   Mon Jan 20 17:45:30 2025 +0000

                Add caml_runtime_parameters back (#3468)

                Add caml_runtime_parameters back.

            commit 5e9975e
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Mon Jan 20 17:15:15 2025 +0000

                Emit atomic compare and exchange (#3486)

            commit a9821e8
            Author: Basile Clément <129742207+bclement-ocp@users.noreply.github.com>
            Date:   Mon Jan 20 15:36:09 2025 +0100

                Make patricia trees big-endian (#3438)

                This patch switches up the implementation of the `Patricia_tree` module
                from little-endian to big-endian, with the main motivation to be able to
                implement in-order traversal.

                The `caml_int_clz_tagged_to_untagged` and `caml_int_tagged_to_tagged` C
                stubs are recognized and replaced with the `clz` instruction when
                compiling with flambda2, so they are only used in the boot compiler.

            commit b8a9789
            Author: Leo White <leo@lpw25.net>
            Date:   Fri Jan 17 13:35:19 2025 +0000

                Generate specific instructions for atomics on immediates (#3477)

                * Generate specific instructions for atomics on immediates

                * Fix formatting

            commit 7b93134
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Fri Jan 17 09:30:30 2025 +0000

                Vectorizer: add tests (#3456)

                * Add tests

                * Disable ocamlformat on unboxed tests

                * Increase -vectorize-max-block-size for tests

                * Fix asssertion failure when vectorizing unboxed int32

                * Disable float32 on arm64 (not yet implemented)

                * improve gen_dune.ml for the vectorizer tests

                Co-authored-by: Xavier Clerc <xclerc@users.noreply.github.com>

            commit 6379678
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Thu Jan 16 16:08:29 2025 +0000

                Add "-ocamlrunparam" linker flag (#3483)

            commit f7b2cbe
            Author: Xavier Clerc <xclerc@users.noreply.github.com>
            Date:   Thu Jan 16 15:25:28 2025 +0000

                Bump the version of `actions/upload-artifact` (#3474)

                * Bump the version of actions/upload-artifact.

                * Ensure artifact names are unique.

                * To trigger CI.

                * Try with commit hash.

            commit afb8a55
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Thu Jan 16 14:03:37 2025 +0000

                Move two macOS CI controllers to runtime5 (#3482)

            commit aae5c40
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Thu Jan 16 13:50:34 2025 +0000

                Fix error in caml_get_init_stack_wsize (#3481)

            commit 525868c
            Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
            Date:   Wed Jan 15 17:47:30 2025 -0500

                Use null pointers for `or_null`  (#3267)

                * runtime changes

                * runtime4 changes

                * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

                * make `Is_block` an inline function

                * redefine `Is_long`

                * fix

                * Change `CODE_UNBOXED_INT64` back

                * optimize `Is_block`/`Is_long`

                * `null_tag` for `caml_obj_tag`

                * consistent naming

                * slightly more reassuring comment

                * `inline` is unnecessary and might break `#define inline`

                * optimization incorrect in presence of nulls

                * Constructors and pattern-matching

                * Bytecode compilation

                * `or_null` is `Variant_or_null`

                * Accept tests

                * Runtime tests

                * Delete obsolete or_null test

                ---------

                Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

            commit 9796b21
            Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
            Date:   Wed Jan 15 17:47:13 2025 -0500

                Runtime changes for `or_null` (#3265)

                * runtime changes

                * runtime4 changes

                * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

                * make `Is_block` an inline function

                * redefine `Is_long`

                * fix

                * Change `CODE_UNBOXED_INT64` back

                * optimize `Is_block`/`Is_long`

                * `null_tag` for `caml_obj_tag`

                * consistent naming

                * slightly more reassuring comment

                * `inline` is unnecessary and might break `#define inline`

                * optimization incorrect in presence of nulls

                ---------

                Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

            commit df4a6e0
            Author: Chris Casinghino <ccasinghino@janestreet.com>
            Date:   Wed Jan 15 13:08:53 2025 -0500

                Bump magic numbers for 5.2.0minus-5 (#3478)

            commit d1c8d85
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Wed Jan 15 16:44:39 2025 +0000

                Peek and poke (#3309)

            commit f8caad4
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Wed Jan 15 16:00:39 2025 +0000

                Vectorizer: xmm register can hold ocaml values (#3455)

                * Add [Valx2] to [Cmm.machtype_component]

                * Vectorizer generates [Valx2]

                * Record live offsets of [Valx2] in the frametable

                For runtime4, xmm register are below [gc_regs], use negative offsets.

                * Move [types_are_compatible] from [Reg] to [Proc]

                This information has to be in sync with register classes, stack
                slock classes, and emit for move instructions.

            commit 34a7873
            Author: Zesen Qian <riaqn@users.noreply.github.com>
            Date:   Wed Jan 15 13:13:18 2025 +0000

                Improve coherence of modality zapping (#3462)

            commit 1a6a9d3
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Wed Jan 15 12:06:24 2025 +0000

                Fix caml_obj_with_tag (#3465)

            commit bc5110a
            Author: Nick Barnes <Nick.Barnes@pobox.com>
            Date:   Wed Jan 15 11:52:25 2025 +0000

                Reset the pacing of major collection after any synchronous major GC (#3463)

                Reset the pacing of major collection at the end of any synchronous major collection.

            commit 9faf700
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Wed Jan 15 11:32:59 2025 +0000

                Remove remnants of caml_obj_truncate (#3469)

            commit ff9430b
            Author: Luke Maurer <lmaurer@janestreet.com>
            Date:   Wed Jan 15 11:31:22 2025 +0000

                Mangle instance symbol names using `____` rather than `___` (#3472)

                Apparently there are libraries around that have names ending in single
                underscores, leading to ambiguous symbol names if we use triple
                underscores to delimit instances. Other choices are possible but this PR
                opts for newly-developed quadruple-underscore technology.

            commit 9984700
            Author: Vincent Laviron <vincent.laviron@gmail.com>
            Date:   Wed Jan 15 11:03:43 2025 +0100

                Port upstream PRs 11542 and 12505 to runtime4 (#3431)

                fix #11482: random crash in large closure allocation (#11542)

                Co-authored-by: Damien Doligez <damien.doligez@inria.fr>

            commit 058c4db
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Tue Jan 14 22:19:32 2025 +0000

                Enable all makearray_dynamic tests on runtime4 (#3470)

            commit ba15ee5
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 20:08:31 2025 +0000

                Vectorize [Ifloatarithmem] (#3452)

                * Add [Isimd_mem] to [Arch.Specific] and emit [addpd] with memory arg

                and similar instructions

                * Vectorize [Ifloatarithmem]

                When the memory alignment is known to be 128-bit (currently, never) emits
                [addpd], otherwise emits a vector load followed by an arithmetic
                instruction.

            commit 9755b39
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 18:57:39 2025 +0000

                Fix CI failure (#3473)

            commit 859949c
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 17:56:53 2025 +0000

                Vectorize [Specific.Istore_int] (#3450)

                Used for array initialization (amd64)

            commit 50f73cb
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 17:38:39 2025 +0000

                Do not allow naked pointers (remove configure option) (#3448)

            commit b7c8ad3
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 17:07:39 2025 +0000

                Vectorizer refactor heuristic for select_and_join (#3449)

                * Refactor [Block.find_last_instruction], cache [Computation.last_pos]

                * Improve heuristics in [Computation.select_and_join] using [last_pos]

            commit 22f81d8
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Tue Jan 14 17:00:29 2025 +0000

                Fix mistake in conditional for makearray_dynamic array initialization (#3466)

            commit aaaddfb
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 14:57:17 2025 +0000

                Vectorizer: propagate alignment of memory accesses (#3451)

                Currently it's always 8 but having this argument will help us
                consider alignment for new vector sequences.

            commit b15d44e
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 14:55:29 2025 +0000

                vectorizer: improve debug printout (#3445)

            commit 6239156
            Author: Stephen Dolan <sdolan@janestreet.com>
            Date:   Tue Jan 14 13:43:21 2025 +0000

                Better hugepage alignment of stacks and heap (#3384)

                Co-authored-by: Mark Shinwell <mshinwell@pm.me>

            commit 677d79a
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 13:23:56 2025 +0000

                Backend dune copy and directive (#3467)

                * Remove unused line directive from [dune]

                * Use [copy_files#] to copy files from ARCH and add a file directive

                * Remove existing file directives

            commit 314b131
            Author: Stephen Dolan <sdolan@janestreet.com>
            Date:   Tue Jan 14 11:58:41 2025 +0000

                Bound stack size in expect tests (#3439)

            commit 02774f8
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 10:52:50 2025 +0000

                all_deps is reflexive (#3464)

            commit 117a0a0
            Author: Stephen Dolan <sdolan@janestreet.com>
            Date:   Tue Jan 14 10:44:15 2025 +0000

                Stub implementation of new custom memory API (#3437)

            commit 4f30aac
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Jan 14 10:31:48 2025 +0000

                Vectorizer bug fix: address argument of memory operations (#3446)

                Fix bug: use address arg of the first instruction in a group

                ... not the last!

                Only matters for arrays at the moment, where the address offset
                argument is not always the same register.

            commit cc91e2b
            Author: Vincent Laviron <vincent.laviron@gmail.com>
            Date:   Tue Jan 14 11:26:59 2025 +0100

                caml_update_dummy: fail on closure blocks (#3429)

            commit 17a01a9
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Tue Jan 14 10:07:39 2025 +0000

                Implement %array_element_size_in_bytes (#3367)

                Co-authored-by: Chris Casinghino <ccasinghino@janestreet.com>

            commit b487f71
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Mon Jan 13 14:05:25 2025 +0000

                Runtime: make types explicit when reading [gc_regs] (#3453)

                Runtime4: make types explicit when reading [gc_regs].

            commit 67e6eb3
            Author: Max Slater <max@thenumb.at>
            Date:   Fri Jan 10 16:17:32 2025 -0500

                More capsule API updates (#3440)

            commit c7f573f
            Author: Mark Shinwell <mshinwell@pm.me>
            Date:   Fri Jan 10 18:26:15 2025 +0000

                Reinstate %makearray_dynamic (#3460)

            commit e1e4fb8
            Author: Zesen Qian <riaqn@users.noreply.github.com>
            Date:   Fri Jan 10 16:15:48 2025 +0000

                `portable` lazy allows `nonportable` thunk (#3436)

                * portable lazy allows nonportable thunk

                * add documentation

                * improve documentation

                * add examples

                * improve comments in test

                * say "not stronger"

            commit c30ec74
            Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
            Date:   Fri Jan 10 10:41:08 2025 -0500

                Check for type recursion without boxing (#3407)

            commit cb290c5
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Fri Jan 10 11:00:32 2025 +0000

                Vectorizer: rename New (#3454)

                Rename New to New_vec128 to make the type clear

                and distinguish it from the upcoming Valx2

            commit bd39e02
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Fri Jan 10 10:24:48 2025 +0000

                Add function [DLL.for_all_i] (#3442)

                * Add function [DLL.for_all_i]

                * Rename to [for_alli] to match existing [mapi] and [iteri]

                * Remove unused argument of [aux] in [DLL.for_all*]

            commit c048920
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Thu Jan 9 13:16:36 2025 +0000

                Cleanup machtype_component size (#3441)

                Cleanup size_component

            commit 830d5e7
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Thu Jan 9 13:15:59 2025 +0000

                Add "dump-vectorize" to OCAMLPARAM (#3443)

                Add [dump-vectorize] to OCAMLPARAM for debugging

            commit 157c95e
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Thu Jan 9 13:15:33 2025 +0000

                Vectorizer bug fix: 128-bit vectorized constant   (#3447)

                Fix bug: 128-bit vectorized constant high/low correctly ordered

            commit 648155d
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Thu Jan 9 13:09:48 2025 +0000

                Add [Printreg.reglist] for debugging (#3444)

            commit d40254f
            Author: Stephen Dolan <sdolan@janestreet.com>
            Date:   Tue Jan 7 21:25:45 2025 +0000

                Move two misplaced files (#3435)

            commit 4a0bb69
            Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
            Date:   Tue Jan 7 15:34:27 2025 -0500

                `Yielding` mode axis (#3283)

                * `Yielding` mode axis

                * Tests

                * fix printing

                ---------

                Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

            commit 00275e0
            Author: Max Slater <max@thenumb.at>
            Date:   Mon Jan 6 13:05:58 2025 -0500

                Unbox_float32 should check custom ops name (#3433)

                check sym name

            commit 2e49469
            Author: Max Slater <max@thenumb.at>
            Date:   Mon Jan 6 13:05:03 2025 -0500

                Make Capsule preserve wrapped exception backtraces (#3421)

                * with_password

                * portable

                * don't use polymorphic parameters

                * review

                * protect encapsulated from other capsule

                * raise wrapped exceptions with existing backtrace

                * cr

            commit 2de23a5
            Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
            Date:   Mon Jan 6 04:04:29 2025 -0500

                Fix CI by using `setup-ocaml` v3 for ocamlformat workflow (#3426)

                [CI] Use setup-ocaml v3 for ocamlformat workflow

            commit eada0f1
            Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
            Date:   Fri Jan 3 21:23:23 2025 -0500

                Move unboxed records to stable (#3419)

            commit a273a33
            Author: Jacob Van Buren <jvanburen@janestreet.com>
            Date:   Fri Jan 3 11:17:18 2025 -0500

                Changed make fmt to run in parallel (#3422)

                changed make fmt to run in parallel

            commit 4de5a72
            Author: Max Slater <max@thenumb.at>
            Date:   Thu Jan 2 20:10:08 2025 -0500

                Add `Capsule.with_password` (#3420)

            commit b084ff3
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Wed Jan 1 15:34:11 2025 +0000

                vectorizer: new test (#3418)

                Add test for register compatiblity

            commit 5549015
            Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
            Date:   Tue Dec 31 17:20:56 2024 +0000

                Vectorizer: check register compatibility (#3412)

                Check that registers are compatible when joining computations
jvanburen added a commit that referenced this pull request Jan 29, 2025
    #Squashed commit of the following:
    #commit c9d7aa6
    #Author: Jacob Van Buren <jvanburen@janestreet.com>
    #Date:   Thu Jan 2 14:49:45 2025 -0500
        #cleaned up div/mod
    #commit 4d9f427
    #Author: Jacob Van Buren <jvanburen@janestreet.com>
    #Date:   Thu Jan 2 14:45:42 2025 -0500
        #address feedback and simplify division interface
    #unified unboxed field getters/setters. This will be useful once we have unboxed integers of different sizes
    #formatted
    #updated cmm_helpers interface to be more amenable to adding other integer sizes
    #Separate test for vectorizer in the CI (#3414)
    #* Separate test for vectorizer in the CI
    #* Remove vectorizer from "gi" CI job
    #CI: simplify the regalloc jobs (#3389)
    #ASR 64-bit lane not available in sse instruction (#3413)
    #Fix case where parser drops attributes in packed module types. (#3262)
    #* Demonstrate dropped attributes in test.
    #Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>
    #* Syntax error on misplaced attribute in packed module types.
    #Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>
    #---------
    #Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>
    #Add attributes to (unsafely) skip jkind check  (#3385)
    #* Add attributes to (unsafely) skip jkind check
    #Add a pair of attributes, [@@unsafe_allow_any_kind_in_intf] and
    #[@@unsafe_allow_any_kind_in_impl], which if set on both the impl and the intf
    #respectively, skip checking the jkind of the type in a signature against the
    #jkind of the type in a struct entirely. This is a more-selective version of the
    #`--allow-illegal-crossing` flag, and likely eventually subsumes it.
    #Signed-off-by: Aspen Smith <aspsmith@janestreet.com>
    #* Emit a warning when unsafe_allow_any_kind is added unnecessarily
    #Note that this is /only/ done if the attribute is set in both signatures but not
    #used - also this is a little over-sensitive (sadly) since this is done during
    #sigature inclusion too. A new test covers the over-sensitivity.
    #Signed-off-by: Aspen Smith <aspsmith@janestreet.com>
    #---------
    #Signed-off-by: Aspen Smith <aspsmith@janestreet.com>
    #Add `Variant_with_null` and `Null` variant constructors (#2870)
    #* `Variant_with_null`
    #* `Null` tagged constructors
    #* precise value kind
    #* No private re-export
    #---------
    #Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>
    #Revert "Implement %makearray_dynamic{,_uninit}" (#3408)
    #Revert "Implement %makearray_dynamic{,_uninit} (#3317)"
    #This reverts commit 6da1dde.
    #Upload core files etc upon CI failure (#3405)
    #Fix IRC and Greedy allocators (arm64) (#3388)
    #Convert float32 constants to int32 in first stage compiler (#3371)
    #* convert float32 constants in bytecode output
    #* edit
    #* edit
    #* blocks + test
    #* compare against float64 constants
    #* tests check proper custom ops
    #---------
    #Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

Squashed commit of the following:

commit 16f1b23
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 15:25:23 2025 -0500

    Squashed commit of the following:

    commit 7c5c7f0
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 15:24:10 2025 -0500

        Squashed commit of the following:

        commit a53391d
        Author: Max Slater <max@thenumb.at>
        Date:   Wed Jan 22 13:53:02 2025 -0500

            Rename `atomic_cas`/`Compare_and_swap` (#3491)

        commit 92b327c
        Author: Max Slater <max@thenumb.at>
        Date:   Tue Jan 21 14:18:56 2025 -0500

            Additional operations for int atomics (#3490)

        commit 38e792c
        Author: Luke Maurer <lmaurer@janestreet.com>
        Date:   Tue Jan 21 17:09:23 2025 +0000

            Support `-open Foo` where `Foo` is parameterised (#3489)

            The command line

            ```
            ocamlopt -open Foo -parameter P -c bar.ml
            ```

            should be fine, even if `Foo` is itself parameterised by `P`: as usual, we
            compile `bar.ml` as if it began with `open! Foo`, and by the subset rule, `Bar`
            can refer to `Foo` because it takes at least the same parameters. Unfortunately,
            currently we process `-open` before `-parameter`, so when we go to check the
            implicit reference to `Foo`, we think there are no parameters, and we report an
            error. (Confusingly, the error suggests that the user add `-parameter P` to the
            command line.)

            The fix is simple: move the code that processes `-parameter` earlier so that
            the initial environment is constructed with the parameters already available.

        commit 784dc96
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 21 14:07:41 2025 +0000

            Rename [emit.mlp] to [emit.ml] on amd64 (#3488)

        commit f3b720a
        Author: Zesen Qian <riaqn@users.noreply.github.com>
        Date:   Tue Jan 21 10:35:35 2025 +0000

            Module aliases save locks instead of walking them immediately (#3398)

        commit 389a7c3
        Author: Nick Barnes <Nick.Barnes@pobox.com>
        Date:   Mon Jan 20 17:55:51 2025 +0000

            Add OCAMLRUNPARAM d= parameter for max # domains (#3487)

            Allow maximum number of domains to be specified as a OCAMLRUNPARAM parameter.

            (cherry picked from commit f92715f)

            Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>

        commit 63767d7
        Author: Nick Barnes <Nick.Barnes@pobox.com>
        Date:   Mon Jan 20 17:45:30 2025 +0000

            Add caml_runtime_parameters back (#3468)

            Add caml_runtime_parameters back.

        commit 5e9975e
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Mon Jan 20 17:15:15 2025 +0000

            Emit atomic compare and exchange (#3486)

        commit a9821e8
        Author: Basile Clément <129742207+bclement-ocp@users.noreply.github.com>
        Date:   Mon Jan 20 15:36:09 2025 +0100

            Make patricia trees big-endian (#3438)

            This patch switches up the implementation of the `Patricia_tree` module
            from little-endian to big-endian, with the main motivation to be able to
            implement in-order traversal.

            The `caml_int_clz_tagged_to_untagged` and `caml_int_tagged_to_tagged` C
            stubs are recognized and replaced with the `clz` instruction when
            compiling with flambda2, so they are only used in the boot compiler.

        commit b8a9789
        Author: Leo White <leo@lpw25.net>
        Date:   Fri Jan 17 13:35:19 2025 +0000

            Generate specific instructions for atomics on immediates (#3477)

            * Generate specific instructions for atomics on immediates

            * Fix formatting

        commit 7b93134
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Fri Jan 17 09:30:30 2025 +0000

            Vectorizer: add tests (#3456)

            * Add tests

            * Disable ocamlformat on unboxed tests

            * Increase -vectorize-max-block-size for tests

            * Fix asssertion failure when vectorizing unboxed int32

            * Disable float32 on arm64 (not yet implemented)

            * improve gen_dune.ml for the vectorizer tests

            Co-authored-by: Xavier Clerc <xclerc@users.noreply.github.com>

        commit 6379678
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Thu Jan 16 16:08:29 2025 +0000

            Add "-ocamlrunparam" linker flag (#3483)

        commit f7b2cbe
        Author: Xavier Clerc <xclerc@users.noreply.github.com>
        Date:   Thu Jan 16 15:25:28 2025 +0000

            Bump the version of `actions/upload-artifact` (#3474)

            * Bump the version of actions/upload-artifact.

            * Ensure artifact names are unique.

            * To trigger CI.

            * Try with commit hash.

        commit afb8a55
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Thu Jan 16 14:03:37 2025 +0000

            Move two macOS CI controllers to runtime5 (#3482)

        commit aae5c40
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Thu Jan 16 13:50:34 2025 +0000

            Fix error in caml_get_init_stack_wsize (#3481)

        commit 525868c
        Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
        Date:   Wed Jan 15 17:47:30 2025 -0500

            Use null pointers for `or_null`  (#3267)

            * runtime changes

            * runtime4 changes

            * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

            * make `Is_block` an inline function

            * redefine `Is_long`

            * fix

            * Change `CODE_UNBOXED_INT64` back

            * optimize `Is_block`/`Is_long`

            * `null_tag` for `caml_obj_tag`

            * consistent naming

            * slightly more reassuring comment

            * `inline` is unnecessary and might break `#define inline`

            * optimization incorrect in presence of nulls

            * Constructors and pattern-matching

            * Bytecode compilation

            * `or_null` is `Variant_or_null`

            * Accept tests

            * Runtime tests

            * Delete obsolete or_null test

            ---------

            Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

        commit 9796b21
        Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
        Date:   Wed Jan 15 17:47:13 2025 -0500

            Runtime changes for `or_null` (#3265)

            * runtime changes

            * runtime4 changes

            * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

            * make `Is_block` an inline function

            * redefine `Is_long`

            * fix

            * Change `CODE_UNBOXED_INT64` back

            * optimize `Is_block`/`Is_long`

            * `null_tag` for `caml_obj_tag`

            * consistent naming

            * slightly more reassuring comment

            * `inline` is unnecessary and might break `#define inline`

            * optimization incorrect in presence of nulls

            ---------

            Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

        commit df4a6e0
        Author: Chris Casinghino <ccasinghino@janestreet.com>
        Date:   Wed Jan 15 13:08:53 2025 -0500

            Bump magic numbers for 5.2.0minus-5 (#3478)

        commit d1c8d85
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Wed Jan 15 16:44:39 2025 +0000

            Peek and poke (#3309)

        commit f8caad4
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Wed Jan 15 16:00:39 2025 +0000

            Vectorizer: xmm register can hold ocaml values (#3455)

            * Add [Valx2] to [Cmm.machtype_component]

            * Vectorizer generates [Valx2]

            * Record live offsets of [Valx2] in the frametable

            For runtime4, xmm register are below [gc_regs], use negative offsets.

            * Move [types_are_compatible] from [Reg] to [Proc]

            This information has to be in sync with register classes, stack
            slock classes, and emit for move instructions.

        commit 34a7873
        Author: Zesen Qian <riaqn@users.noreply.github.com>
        Date:   Wed Jan 15 13:13:18 2025 +0000

            Improve coherence of modality zapping (#3462)

        commit 1a6a9d3
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Wed Jan 15 12:06:24 2025 +0000

            Fix caml_obj_with_tag (#3465)

        commit bc5110a
        Author: Nick Barnes <Nick.Barnes@pobox.com>
        Date:   Wed Jan 15 11:52:25 2025 +0000

            Reset the pacing of major collection after any synchronous major GC (#3463)

            Reset the pacing of major collection at the end of any synchronous major collection.

        commit 9faf700
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Wed Jan 15 11:32:59 2025 +0000

            Remove remnants of caml_obj_truncate (#3469)

        commit ff9430b
        Author: Luke Maurer <lmaurer@janestreet.com>
        Date:   Wed Jan 15 11:31:22 2025 +0000

            Mangle instance symbol names using `____` rather than `___` (#3472)

            Apparently there are libraries around that have names ending in single
            underscores, leading to ambiguous symbol names if we use triple
            underscores to delimit instances. Other choices are possible but this PR
            opts for newly-developed quadruple-underscore technology.

        commit 9984700
        Author: Vincent Laviron <vincent.laviron@gmail.com>
        Date:   Wed Jan 15 11:03:43 2025 +0100

            Port upstream PRs 11542 and 12505 to runtime4 (#3431)

            fix #11482: random crash in large closure allocation (#11542)

            Co-authored-by: Damien Doligez <damien.doligez@inria.fr>

        commit 058c4db
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Tue Jan 14 22:19:32 2025 +0000

            Enable all makearray_dynamic tests on runtime4 (#3470)

        commit ba15ee5
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 20:08:31 2025 +0000

            Vectorize [Ifloatarithmem] (#3452)

            * Add [Isimd_mem] to [Arch.Specific] and emit [addpd] with memory arg

            and similar instructions

            * Vectorize [Ifloatarithmem]

            When the memory alignment is known to be 128-bit (currently, never) emits
            [addpd], otherwise emits a vector load followed by an arithmetic
            instruction.

        commit 9755b39
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 18:57:39 2025 +0000

            Fix CI failure (#3473)

        commit 859949c
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 17:56:53 2025 +0000

            Vectorize [Specific.Istore_int] (#3450)

            Used for array initialization (amd64)

        commit 50f73cb
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 17:38:39 2025 +0000

            Do not allow naked pointers (remove configure option) (#3448)

        commit b7c8ad3
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 17:07:39 2025 +0000

            Vectorizer refactor heuristic for select_and_join (#3449)

            * Refactor [Block.find_last_instruction], cache [Computation.last_pos]

            * Improve heuristics in [Computation.select_and_join] using [last_pos]

        commit 22f81d8
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Tue Jan 14 17:00:29 2025 +0000

            Fix mistake in conditional for makearray_dynamic array initialization (#3466)

        commit aaaddfb
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 14:57:17 2025 +0000

            Vectorizer: propagate alignment of memory accesses (#3451)

            Currently it's always 8 but having this argument will help us
            consider alignment for new vector sequences.

        commit b15d44e
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 14:55:29 2025 +0000

            vectorizer: improve debug printout (#3445)

        commit 6239156
        Author: Stephen Dolan <sdolan@janestreet.com>
        Date:   Tue Jan 14 13:43:21 2025 +0000

            Better hugepage alignment of stacks and heap (#3384)

            Co-authored-by: Mark Shinwell <mshinwell@pm.me>

        commit 677d79a
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 13:23:56 2025 +0000

            Backend dune copy and directive (#3467)

            * Remove unused line directive from [dune]

            * Use [copy_files#] to copy files from ARCH and add a file directive

            * Remove existing file directives

        commit 314b131
        Author: Stephen Dolan <sdolan@janestreet.com>
        Date:   Tue Jan 14 11:58:41 2025 +0000

            Bound stack size in expect tests (#3439)

        commit 02774f8
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 10:52:50 2025 +0000

            all_deps is reflexive (#3464)

        commit 117a0a0
        Author: Stephen Dolan <sdolan@janestreet.com>
        Date:   Tue Jan 14 10:44:15 2025 +0000

            Stub implementation of new custom memory API (#3437)

        commit 4f30aac
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Jan 14 10:31:48 2025 +0000

            Vectorizer bug fix: address argument of memory operations (#3446)

            Fix bug: use address arg of the first instruction in a group

            ... not the last!

            Only matters for arrays at the moment, where the address offset
            argument is not always the same register.

        commit cc91e2b
        Author: Vincent Laviron <vincent.laviron@gmail.com>
        Date:   Tue Jan 14 11:26:59 2025 +0100

            caml_update_dummy: fail on closure blocks (#3429)

        commit 17a01a9
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Tue Jan 14 10:07:39 2025 +0000

            Implement %array_element_size_in_bytes (#3367)

            Co-authored-by: Chris Casinghino <ccasinghino@janestreet.com>

        commit b487f71
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Mon Jan 13 14:05:25 2025 +0000

            Runtime: make types explicit when reading [gc_regs] (#3453)

            Runtime4: make types explicit when reading [gc_regs].

        commit 67e6eb3
        Author: Max Slater <max@thenumb.at>
        Date:   Fri Jan 10 16:17:32 2025 -0500

            More capsule API updates (#3440)

        commit c7f573f
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Fri Jan 10 18:26:15 2025 +0000

            Reinstate %makearray_dynamic (#3460)

        commit e1e4fb8
        Author: Zesen Qian <riaqn@users.noreply.github.com>
        Date:   Fri Jan 10 16:15:48 2025 +0000

            `portable` lazy allows `nonportable` thunk (#3436)

            * portable lazy allows nonportable thunk

            * add documentation

            * improve documentation

            * add examples

            * improve comments in test

            * say "not stronger"

        commit c30ec74
        Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
        Date:   Fri Jan 10 10:41:08 2025 -0500

            Check for type recursion without boxing (#3407)

        commit cb290c5
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Fri Jan 10 11:00:32 2025 +0000

            Vectorizer: rename New (#3454)

            Rename New to New_vec128 to make the type clear

            and distinguish it from the upcoming Valx2

        commit bd39e02
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Fri Jan 10 10:24:48 2025 +0000

            Add function [DLL.for_all_i] (#3442)

            * Add function [DLL.for_all_i]

            * Rename to [for_alli] to match existing [mapi] and [iteri]

            * Remove unused argument of [aux] in [DLL.for_all*]

        commit c048920
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Thu Jan 9 13:16:36 2025 +0000

            Cleanup machtype_component size (#3441)

            Cleanup size_component

        commit 830d5e7
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Thu Jan 9 13:15:59 2025 +0000

            Add "dump-vectorize" to OCAMLPARAM (#3443)

            Add [dump-vectorize] to OCAMLPARAM for debugging

        commit 157c95e
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Thu Jan 9 13:15:33 2025 +0000

            Vectorizer bug fix: 128-bit vectorized constant   (#3447)

            Fix bug: 128-bit vectorized constant high/low correctly ordered

        commit 648155d
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Thu Jan 9 13:09:48 2025 +0000

            Add [Printreg.reglist] for debugging (#3444)

        commit d40254f
        Author: Stephen Dolan <sdolan@janestreet.com>
        Date:   Tue Jan 7 21:25:45 2025 +0000

            Move two misplaced files (#3435)

        commit 4a0bb69
        Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
        Date:   Tue Jan 7 15:34:27 2025 -0500

            `Yielding` mode axis (#3283)

            * `Yielding` mode axis

            * Tests

            * fix printing

            ---------

            Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

        commit 00275e0
        Author: Max Slater <max@thenumb.at>
        Date:   Mon Jan 6 13:05:58 2025 -0500

            Unbox_float32 should check custom ops name (#3433)

            check sym name

        commit 2e49469
        Author: Max Slater <max@thenumb.at>
        Date:   Mon Jan 6 13:05:03 2025 -0500

            Make Capsule preserve wrapped exception backtraces (#3421)

            * with_password

            * portable

            * don't use polymorphic parameters

            * review

            * protect encapsulated from other capsule

            * raise wrapped exceptions with existing backtrace

            * cr

        commit 2de23a5
        Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
        Date:   Mon Jan 6 04:04:29 2025 -0500

            Fix CI by using `setup-ocaml` v3 for ocamlformat workflow (#3426)

            [CI] Use setup-ocaml v3 for ocamlformat workflow

        commit eada0f1
        Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
        Date:   Fri Jan 3 21:23:23 2025 -0500

            Move unboxed records to stable (#3419)

        commit a273a33
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Fri Jan 3 11:17:18 2025 -0500

            Changed make fmt to run in parallel (#3422)

            changed make fmt to run in parallel

        commit 4de5a72
        Author: Max Slater <max@thenumb.at>
        Date:   Thu Jan 2 20:10:08 2025 -0500

            Add `Capsule.with_password` (#3420)

        commit b084ff3
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Wed Jan 1 15:34:11 2025 +0000

            vectorizer: new test (#3418)

            Add test for register compatiblity

        commit 5549015
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Dec 31 17:20:56 2024 +0000

            Vectorizer: check register compatibility (#3412)

            Check that registers are compatible when joining computations
jvanburen added a commit that referenced this pull request Jan 29, 2025
commit a093d3b
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 24 19:10:54 2025 -0500

    removed old commented code

commit d090c6d
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 24 19:09:40 2025 -0500

    small fixes

commit 9c4fa5e
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 24 18:58:05 2025 -0500

    translprim fixed

commit 8b5a935
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 24 17:39:04 2025 -0500

    progress

commit 8c05bec
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 24 13:07:59 2025 -0500

    checkpoint before moving modules

commit 933e993
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 24 12:34:34 2025 -0500

    checkpoint before 2 type params

commit 8010fb5
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 24 11:16:47 2025 -0500

    introduced naked_immediate to lambda

commit 6a616fd
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 18:17:15 2025 -0500

    push

commit 08ec6bc
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 18:09:45 2025 -0500

    unifying scalar primitives

commit abe4cef
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 14:58:18 2025 -0500

    div/rem -> sdiv/srem

commit 12c5e9f
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 14:41:54 2025 -0500

    fix tests

commit 902ab43
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 13:50:07 2025 -0500

    fixed flambda bug

commit a8a64ae
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 13:16:50 2025 -0500

    updated typing and started changing int16_u

commit 37a8262
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 12:55:06 2025 -0500

    removed targetint from lambda

commit 1eed0a1
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 12:46:38 2025 -0500

    added bytecode compilation

commit d64f310
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 23 10:24:27 2025 -0500

    fixed up

commit 2aa2843
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 14:07:40 2025 -0500

    added primitives, but didn't update backend yet

commit dc289dd
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 11:49:09 2025 -0500

    started adding primitives

commit 4950d06
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 17:32:27 2025 -0500

    fixed up unboxing proofs to reflect that "unboxed" int8/16 are just untagged immediates

commit 9786426
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 17:14:53 2025 -0500

    renamed prove_is_a_boxed_number

commit 4e97122
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 17:08:31 2025 -0500

    fixed bbswap

commit 4d6c02f
Merge: 1e40897 39828c2
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 16:52:01 2025 -0500

    Merge branch 'cmm-scalar-type' into unboxed-small-ints-tryagain

commit 1e40897
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 16:30:20 2025 -0500

    formatted

commit 8ad12b4
Merge: 98ac389 a53391d
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 16:29:00 2025 -0500

    Merge branch 'main' into unboxed-small-ints-tryagain

commit 39828c2
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 15:27:00 2025 -0500

    Squashed commit of the following:

    commit 34a5e6a
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 15:26:17 2025 -0500

        Squashed commit of the following:

        commit 16f1b23
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Wed Jan 22 15:25:23 2025 -0500

            Squashed commit of the following:

            commit 7c5c7f0
            Author: Jacob Van Buren <jvanburen@janestreet.com>
            Date:   Wed Jan 22 15:24:10 2025 -0500

                Squashed commit of the following:

                commit a53391d
                Author: Max Slater <max@thenumb.at>
                Date:   Wed Jan 22 13:53:02 2025 -0500

                    Rename `atomic_cas`/`Compare_and_swap` (#3491)

                commit 92b327c
                Author: Max Slater <max@thenumb.at>
                Date:   Tue Jan 21 14:18:56 2025 -0500

                    Additional operations for int atomics (#3490)

                commit 38e792c
                Author: Luke Maurer <lmaurer@janestreet.com>
                Date:   Tue Jan 21 17:09:23 2025 +0000

                    Support `-open Foo` where `Foo` is parameterised (#3489)

                    The command line

                    ```
                    ocamlopt -open Foo -parameter P -c bar.ml
                    ```

                    should be fine, even if `Foo` is itself parameterised by `P`: as usual, we
                    compile `bar.ml` as if it began with `open! Foo`, and by the subset rule, `Bar`
                    can refer to `Foo` because it takes at least the same parameters. Unfortunately,
                    currently we process `-open` before `-parameter`, so when we go to check the
                    implicit reference to `Foo`, we think there are no parameters, and we report an
                    error. (Confusingly, the error suggests that the user add `-parameter P` to the
                    command line.)

                    The fix is simple: move the code that processes `-parameter` earlier so that
                    the initial environment is constructed with the parameters already available.

                commit 784dc96
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 21 14:07:41 2025 +0000

                    Rename [emit.mlp] to [emit.ml] on amd64 (#3488)

                commit f3b720a
                Author: Zesen Qian <riaqn@users.noreply.github.com>
                Date:   Tue Jan 21 10:35:35 2025 +0000

                    Module aliases save locks instead of walking them immediately (#3398)

                commit 389a7c3
                Author: Nick Barnes <Nick.Barnes@pobox.com>
                Date:   Mon Jan 20 17:55:51 2025 +0000

                    Add OCAMLRUNPARAM d= parameter for max # domains (#3487)

                    Allow maximum number of domains to be specified as a OCAMLRUNPARAM parameter.

                    (cherry picked from commit f92715f)

                    Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>

                commit 63767d7
                Author: Nick Barnes <Nick.Barnes@pobox.com>
                Date:   Mon Jan 20 17:45:30 2025 +0000

                    Add caml_runtime_parameters back (#3468)

                    Add caml_runtime_parameters back.

                commit 5e9975e
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Mon Jan 20 17:15:15 2025 +0000

                    Emit atomic compare and exchange (#3486)

                commit a9821e8
                Author: Basile Clément <129742207+bclement-ocp@users.noreply.github.com>
                Date:   Mon Jan 20 15:36:09 2025 +0100

                    Make patricia trees big-endian (#3438)

                    This patch switches up the implementation of the `Patricia_tree` module
                    from little-endian to big-endian, with the main motivation to be able to
                    implement in-order traversal.

                    The `caml_int_clz_tagged_to_untagged` and `caml_int_tagged_to_tagged` C
                    stubs are recognized and replaced with the `clz` instruction when
                    compiling with flambda2, so they are only used in the boot compiler.

                commit b8a9789
                Author: Leo White <leo@lpw25.net>
                Date:   Fri Jan 17 13:35:19 2025 +0000

                    Generate specific instructions for atomics on immediates (#3477)

                    * Generate specific instructions for atomics on immediates

                    * Fix formatting

                commit 7b93134
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Fri Jan 17 09:30:30 2025 +0000

                    Vectorizer: add tests (#3456)

                    * Add tests

                    * Disable ocamlformat on unboxed tests

                    * Increase -vectorize-max-block-size for tests

                    * Fix asssertion failure when vectorizing unboxed int32

                    * Disable float32 on arm64 (not yet implemented)

                    * improve gen_dune.ml for the vectorizer tests

                    Co-authored-by: Xavier Clerc <xclerc@users.noreply.github.com>

                commit 6379678
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Thu Jan 16 16:08:29 2025 +0000

                    Add "-ocamlrunparam" linker flag (#3483)

                commit f7b2cbe
                Author: Xavier Clerc <xclerc@users.noreply.github.com>
                Date:   Thu Jan 16 15:25:28 2025 +0000

                    Bump the version of `actions/upload-artifact` (#3474)

                    * Bump the version of actions/upload-artifact.

                    * Ensure artifact names are unique.

                    * To trigger CI.

                    * Try with commit hash.

                commit afb8a55
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Thu Jan 16 14:03:37 2025 +0000

                    Move two macOS CI controllers to runtime5 (#3482)

                commit aae5c40
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Thu Jan 16 13:50:34 2025 +0000

                    Fix error in caml_get_init_stack_wsize (#3481)

                commit 525868c
                Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
                Date:   Wed Jan 15 17:47:30 2025 -0500

                    Use null pointers for `or_null`  (#3267)

                    * runtime changes

                    * runtime4 changes

                    * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

                    * make `Is_block` an inline function

                    * redefine `Is_long`

                    * fix

                    * Change `CODE_UNBOXED_INT64` back

                    * optimize `Is_block`/`Is_long`

                    * `null_tag` for `caml_obj_tag`

                    * consistent naming

                    * slightly more reassuring comment

                    * `inline` is unnecessary and might break `#define inline`

                    * optimization incorrect in presence of nulls

                    * Constructors and pattern-matching

                    * Bytecode compilation

                    * `or_null` is `Variant_or_null`

                    * Accept tests

                    * Runtime tests

                    * Delete obsolete or_null test

                    ---------

                    Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

                commit 9796b21
                Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
                Date:   Wed Jan 15 17:47:13 2025 -0500

                    Runtime changes for `or_null` (#3265)

                    * runtime changes

                    * runtime4 changes

                    * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

                    * make `Is_block` an inline function

                    * redefine `Is_long`

                    * fix

                    * Change `CODE_UNBOXED_INT64` back

                    * optimize `Is_block`/`Is_long`

                    * `null_tag` for `caml_obj_tag`

                    * consistent naming

                    * slightly more reassuring comment

                    * `inline` is unnecessary and might break `#define inline`

                    * optimization incorrect in presence of nulls

                    ---------

                    Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

                commit df4a6e0
                Author: Chris Casinghino <ccasinghino@janestreet.com>
                Date:   Wed Jan 15 13:08:53 2025 -0500

                    Bump magic numbers for 5.2.0minus-5 (#3478)

                commit d1c8d85
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Wed Jan 15 16:44:39 2025 +0000

                    Peek and poke (#3309)

                commit f8caad4
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Wed Jan 15 16:00:39 2025 +0000

                    Vectorizer: xmm register can hold ocaml values (#3455)

                    * Add [Valx2] to [Cmm.machtype_component]

                    * Vectorizer generates [Valx2]

                    * Record live offsets of [Valx2] in the frametable

                    For runtime4, xmm register are below [gc_regs], use negative offsets.

                    * Move [types_are_compatible] from [Reg] to [Proc]

                    This information has to be in sync with register classes, stack
                    slock classes, and emit for move instructions.

                commit 34a7873
                Author: Zesen Qian <riaqn@users.noreply.github.com>
                Date:   Wed Jan 15 13:13:18 2025 +0000

                    Improve coherence of modality zapping (#3462)

                commit 1a6a9d3
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Wed Jan 15 12:06:24 2025 +0000

                    Fix caml_obj_with_tag (#3465)

                commit bc5110a
                Author: Nick Barnes <Nick.Barnes@pobox.com>
                Date:   Wed Jan 15 11:52:25 2025 +0000

                    Reset the pacing of major collection after any synchronous major GC (#3463)

                    Reset the pacing of major collection at the end of any synchronous major collection.

                commit 9faf700
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Wed Jan 15 11:32:59 2025 +0000

                    Remove remnants of caml_obj_truncate (#3469)

                commit ff9430b
                Author: Luke Maurer <lmaurer@janestreet.com>
                Date:   Wed Jan 15 11:31:22 2025 +0000

                    Mangle instance symbol names using `____` rather than `___` (#3472)

                    Apparently there are libraries around that have names ending in single
                    underscores, leading to ambiguous symbol names if we use triple
                    underscores to delimit instances. Other choices are possible but this PR
                    opts for newly-developed quadruple-underscore technology.

                commit 9984700
                Author: Vincent Laviron <vincent.laviron@gmail.com>
                Date:   Wed Jan 15 11:03:43 2025 +0100

                    Port upstream PRs 11542 and 12505 to runtime4 (#3431)

                    fix #11482: random crash in large closure allocation (#11542)

                    Co-authored-by: Damien Doligez <damien.doligez@inria.fr>

                commit 058c4db
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Tue Jan 14 22:19:32 2025 +0000

                    Enable all makearray_dynamic tests on runtime4 (#3470)

                commit ba15ee5
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 20:08:31 2025 +0000

                    Vectorize [Ifloatarithmem] (#3452)

                    * Add [Isimd_mem] to [Arch.Specific] and emit [addpd] with memory arg

                    and similar instructions

                    * Vectorize [Ifloatarithmem]

                    When the memory alignment is known to be 128-bit (currently, never) emits
                    [addpd], otherwise emits a vector load followed by an arithmetic
                    instruction.

                commit 9755b39
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 18:57:39 2025 +0000

                    Fix CI failure (#3473)

                commit 859949c
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 17:56:53 2025 +0000

                    Vectorize [Specific.Istore_int] (#3450)

                    Used for array initialization (amd64)

                commit 50f73cb
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 17:38:39 2025 +0000

                    Do not allow naked pointers (remove configure option) (#3448)

                commit b7c8ad3
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 17:07:39 2025 +0000

                    Vectorizer refactor heuristic for select_and_join (#3449)

                    * Refactor [Block.find_last_instruction], cache [Computation.last_pos]

                    * Improve heuristics in [Computation.select_and_join] using [last_pos]

                commit 22f81d8
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Tue Jan 14 17:00:29 2025 +0000

                    Fix mistake in conditional for makearray_dynamic array initialization (#3466)

                commit aaaddfb
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 14:57:17 2025 +0000

                    Vectorizer: propagate alignment of memory accesses (#3451)

                    Currently it's always 8 but having this argument will help us
                    consider alignment for new vector sequences.

                commit b15d44e
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 14:55:29 2025 +0000

                    vectorizer: improve debug printout (#3445)

                commit 6239156
                Author: Stephen Dolan <sdolan@janestreet.com>
                Date:   Tue Jan 14 13:43:21 2025 +0000

                    Better hugepage alignment of stacks and heap (#3384)

                    Co-authored-by: Mark Shinwell <mshinwell@pm.me>

                commit 677d79a
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 13:23:56 2025 +0000

                    Backend dune copy and directive (#3467)

                    * Remove unused line directive from [dune]

                    * Use [copy_files#] to copy files from ARCH and add a file directive

                    * Remove existing file directives

                commit 314b131
                Author: Stephen Dolan <sdolan@janestreet.com>
                Date:   Tue Jan 14 11:58:41 2025 +0000

                    Bound stack size in expect tests (#3439)

                commit 02774f8
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 10:52:50 2025 +0000

                    all_deps is reflexive (#3464)

                commit 117a0a0
                Author: Stephen Dolan <sdolan@janestreet.com>
                Date:   Tue Jan 14 10:44:15 2025 +0000

                    Stub implementation of new custom memory API (#3437)

                commit 4f30aac
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Jan 14 10:31:48 2025 +0000

                    Vectorizer bug fix: address argument of memory operations (#3446)

                    Fix bug: use address arg of the first instruction in a group

                    ... not the last!

                    Only matters for arrays at the moment, where the address offset
                    argument is not always the same register.

                commit cc91e2b
                Author: Vincent Laviron <vincent.laviron@gmail.com>
                Date:   Tue Jan 14 11:26:59 2025 +0100

                    caml_update_dummy: fail on closure blocks (#3429)

                commit 17a01a9
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Tue Jan 14 10:07:39 2025 +0000

                    Implement %array_element_size_in_bytes (#3367)

                    Co-authored-by: Chris Casinghino <ccasinghino@janestreet.com>

                commit b487f71
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Mon Jan 13 14:05:25 2025 +0000

                    Runtime: make types explicit when reading [gc_regs] (#3453)

                    Runtime4: make types explicit when reading [gc_regs].

                commit 67e6eb3
                Author: Max Slater <max@thenumb.at>
                Date:   Fri Jan 10 16:17:32 2025 -0500

                    More capsule API updates (#3440)

                commit c7f573f
                Author: Mark Shinwell <mshinwell@pm.me>
                Date:   Fri Jan 10 18:26:15 2025 +0000

                    Reinstate %makearray_dynamic (#3460)

                commit e1e4fb8
                Author: Zesen Qian <riaqn@users.noreply.github.com>
                Date:   Fri Jan 10 16:15:48 2025 +0000

                    `portable` lazy allows `nonportable` thunk (#3436)

                    * portable lazy allows nonportable thunk

                    * add documentation

                    * improve documentation

                    * add examples

                    * improve comments in test

                    * say "not stronger"

                commit c30ec74
                Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
                Date:   Fri Jan 10 10:41:08 2025 -0500

                    Check for type recursion without boxing (#3407)

                commit cb290c5
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Fri Jan 10 11:00:32 2025 +0000

                    Vectorizer: rename New (#3454)

                    Rename New to New_vec128 to make the type clear

                    and distinguish it from the upcoming Valx2

                commit bd39e02
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Fri Jan 10 10:24:48 2025 +0000

                    Add function [DLL.for_all_i] (#3442)

                    * Add function [DLL.for_all_i]

                    * Rename to [for_alli] to match existing [mapi] and [iteri]

                    * Remove unused argument of [aux] in [DLL.for_all*]

                commit c048920
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Thu Jan 9 13:16:36 2025 +0000

                    Cleanup machtype_component size (#3441)

                    Cleanup size_component

                commit 830d5e7
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Thu Jan 9 13:15:59 2025 +0000

                    Add "dump-vectorize" to OCAMLPARAM (#3443)

                    Add [dump-vectorize] to OCAMLPARAM for debugging

                commit 157c95e
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Thu Jan 9 13:15:33 2025 +0000

                    Vectorizer bug fix: 128-bit vectorized constant   (#3447)

                    Fix bug: 128-bit vectorized constant high/low correctly ordered

                commit 648155d
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Thu Jan 9 13:09:48 2025 +0000

                    Add [Printreg.reglist] for debugging (#3444)

                commit d40254f
                Author: Stephen Dolan <sdolan@janestreet.com>
                Date:   Tue Jan 7 21:25:45 2025 +0000

                    Move two misplaced files (#3435)

                commit 4a0bb69
                Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
                Date:   Tue Jan 7 15:34:27 2025 -0500

                    `Yielding` mode axis (#3283)

                    * `Yielding` mode axis

                    * Tests

                    * fix printing

                    ---------

                    Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

                commit 00275e0
                Author: Max Slater <max@thenumb.at>
                Date:   Mon Jan 6 13:05:58 2025 -0500

                    Unbox_float32 should check custom ops name (#3433)

                    check sym name

                commit 2e49469
                Author: Max Slater <max@thenumb.at>
                Date:   Mon Jan 6 13:05:03 2025 -0500

                    Make Capsule preserve wrapped exception backtraces (#3421)

                    * with_password

                    * portable

                    * don't use polymorphic parameters

                    * review

                    * protect encapsulated from other capsule

                    * raise wrapped exceptions with existing backtrace

                    * cr

                commit 2de23a5
                Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
                Date:   Mon Jan 6 04:04:29 2025 -0500

                    Fix CI by using `setup-ocaml` v3 for ocamlformat workflow (#3426)

                    [CI] Use setup-ocaml v3 for ocamlformat workflow

                commit eada0f1
                Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
                Date:   Fri Jan 3 21:23:23 2025 -0500

                    Move unboxed records to stable (#3419)

                commit a273a33
                Author: Jacob Van Buren <jvanburen@janestreet.com>
                Date:   Fri Jan 3 11:17:18 2025 -0500

                    Changed make fmt to run in parallel (#3422)

                    changed make fmt to run in parallel

                commit 4de5a72
                Author: Max Slater <max@thenumb.at>
                Date:   Thu Jan 2 20:10:08 2025 -0500

                    Add `Capsule.with_password` (#3420)

                commit b084ff3
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Wed Jan 1 15:34:11 2025 +0000

                    vectorizer: new test (#3418)

                    Add test for register compatiblity

                commit 5549015
                Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                Date:   Tue Dec 31 17:20:56 2024 +0000

                    Vectorizer: check register compatibility (#3412)

                    Check that registers are compatible when joining computations

commit 1b4978a
Merge: 80b7111 c7361a4
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 14:51:42 2025 -0500

    Merge branch 'refactor-cmm-for-more-integer-widths' into cmm-scalar-type

commit c7361a4
Merge: 0052ebb d0e8914
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 14:45:04 2025 -0500

    Merge branch 'cmm-refactor-unboxed-fields' into refactor-cmm-for-more-integer-widths

commit d0e8914
Merge: abcd725 dd1d945
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 22 14:22:34 2025 -0500

    Merge branch 'generalize-cmm-helpers-interface' into cmm-refactor-unboxed-fields

commit dd1d945
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Jan 21 13:10:36 2025 -0500

    sped up division tests

commit 958b4d3
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Jan 21 12:36:32 2025 -0500

    no specialize

commit 7033cfd
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Jan 21 11:40:59 2025 -0500

    updated division tests

commit c5ab6a2
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Jan 21 10:59:37 2025 -0500

    moved comment

commit f1a071b
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Jan 21 10:58:42 2025 -0500

    re-added comment with disclaimer for d>1

commit 1a44076
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 17 15:44:03 2025 -0500

    testing division by constant optimzation

commit d54b895
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 17 15:40:56 2025 -0500

    responded to feedback

commit afe40f1
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 16 15:06:12 2025 -0500

    updated signed division by a negative constant to use the algorithm suggested in the referenced book

commit eff8c7e
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 16 13:01:05 2025 -0500

    responded to feedback

commit 80b7111
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Jan 3 11:03:21 2025 -0500

    Added `Cmm_helpers.Scalar_type`. This provides utilities for converting between integers types of different widths and signedness. This is in preparation for adding unboxed small integer types.

commit abcd725
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Dec 31 11:00:07 2024 -0500

    unified unboxed field getters/setters. This will be useful once we have unboxed integers of different sizes

commit 0052ebb
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 2 15:40:34 2025 -0500

    Squashed commit of the following:

    commit d1acc48
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 2 14:53:51 2025 -0500

        Squashed commit of the following:

        commit c9d7aa6
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Thu Jan 2 14:49:45 2025 -0500

            cleaned up div/mod

        commit 4d9f427
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Thu Jan 2 14:45:42 2025 -0500

            address feedback and simplify division interface

    commit 625a416
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Dec 31 11:00:07 2024 -0500

        unified unboxed field getters/setters. This will be useful once we have unboxed integers of different sizes

    commit 37b4e82
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Dec 31 09:40:53 2024 -0500

        formatted

    commit 1746aa8
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 30 11:37:33 2024 -0500

        updated cmm_helpers interface to be more amenable to adding other integer sizes

    commit 9e7c322
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Dec 31 12:01:21 2024 +0000

        Separate test for vectorizer in the CI (#3414)

        * Separate test for vectorizer in the CI

        * Remove vectorizer from "gi" CI job

    commit e1a5fe4
    Author: Xavier Clerc <xclerc@users.noreply.github.com>
    Date:   Tue Dec 31 10:54:43 2024 +0000

        CI: simplify the regalloc jobs (#3389)

    commit ab229fc
    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
    Date:   Tue Dec 31 10:42:37 2024 +0000

        ASR 64-bit lane not available in sse instruction (#3413)

    commit 8b99545
    Author: Thomas Del Vecchio <127883551+tdelvecchio-jsc@users.noreply.github.com>
    Date:   Mon Dec 30 14:26:48 2024 -0500

        Fix case where parser drops attributes in packed module types. (#3262)

        * Demonstrate dropped attributes in test.

        Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>

        * Syntax error on misplaced attribute in packed module types.

        Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>

        ---------

        Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>

    commit fe97beb
    Author: Aspen Smith <aspsmith@janestreet.com>
    Date:   Sat Dec 28 11:47:55 2024 -0500

        Add attributes to (unsafely) skip jkind check  (#3385)

        * Add attributes to (unsafely) skip jkind check

        Add a pair of attributes, [@@unsafe_allow_any_kind_in_intf] and
        [@@unsafe_allow_any_kind_in_impl], which if set on both the impl and the intf
        respectively, skip checking the jkind of the type in a signature against the
        jkind of the type in a struct entirely. This is a more-selective version of the
        `--allow-illegal-crossing` flag, and likely eventually subsumes it.

        Signed-off-by: Aspen Smith <aspsmith@janestreet.com>

        * Emit a warning when unsafe_allow_any_kind is added unnecessarily

        Note that this is /only/ done if the attribute is set in both signatures but not
        used - also this is a little over-sensitive (sadly) since this is done during
        sigature inclusion too. A new test covers the over-sensitivity.

        Signed-off-by: Aspen Smith <aspsmith@janestreet.com>

        ---------

        Signed-off-by: Aspen Smith <aspsmith@janestreet.com>

    commit 862ced2
    Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
    Date:   Thu Dec 26 15:20:06 2024 -0500

        Add `Variant_with_null` and `Null` variant constructors (#2870)

        * `Variant_with_null`

        * `Null` tagged constructors

        * precise value kind

        * No private re-export

        ---------

        Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

    commit 1eeed87
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Thu Dec 26 15:00:49 2024 +0000

        Revert "Implement %makearray_dynamic{,_uninit}" (#3408)

        Revert "Implement %makearray_dynamic{,_uninit} (#3317)"

        This reverts commit 6da1dde.

    commit 2358e09
    Author: Mark Shinwell <mshinwell@pm.me>
    Date:   Tue Dec 24 15:54:06 2024 +0000

        Upload core files etc upon CI failure (#3405)

    commit dc6e300
    Author: Xavier Clerc <xclerc@users.noreply.github.com>
    Date:   Tue Dec 24 10:06:20 2024 +0100

        Fix IRC and Greedy allocators (arm64) (#3388)

    commit 65c0596
    Author: Max Slater <max@thenumb.at>
    Date:   Mon Dec 23 16:49:37 2024 -0500

        Convert float32 constants to int32 in first stage compiler (#3371)

        * convert float32 constants in bytecode output

        * edit

        * edit

        * blocks + test

        * compare against float64 constants

        * tests check proper custom ops

        ---------

        Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

commit c9d7aa6
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 2 14:49:45 2025 -0500

    cleaned up div/mod

commit 4d9f427
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Jan 2 14:45:42 2025 -0500

    address feedback and simplify division interface

commit 37b4e82
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Dec 31 09:40:53 2024 -0500

    formatted

commit 1746aa8
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 30 11:37:33 2024 -0500

    updated cmm_helpers interface to be more amenable to adding other integer sizes

commit 98ac389
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 27 14:49:54 2024 -0500

    simplified shift operators

commit 6f73bf9
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 27 13:28:30 2024 -0500

    expanded cmm_helpers numeric types to handle more numeric types

commit 5ca16d8
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 26 17:05:20 2024 -0500

    working on casting and splitting up PR

commit b6c0154
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 16:28:17 2024 -0500

    formatted

commit e9760bf
Merge: 5e5c4f3 a7b1f51
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 16:27:49 2024 -0500

    Merge branch 'refactor-cmm-for-more-integer-widths' into unboxed-small-ints

commit a7b1f51
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 16:26:20 2024 -0500

    formatted

commit 5e5c4f3
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 16:25:42 2024 -0500

    fixed merge

commit b3e3b45
Merge: 6fa9504 227f0c8
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 16:10:28 2024 -0500

    Merge branch 'refactor-cmm-for-more-integer-widths' into unboxed-small-ints

commit 227f0c8
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 16:08:07 2024 -0500

    moved cmm refactors into their own branch

commit 6fa9504
Merge: 4983b51 6da1dde
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 15:50:38 2024 -0500

    Merge remote-tracking branch 'origin/main' into unboxed-small-ints

commit 4983b51
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 15:36:41 2024 -0500

    unified unboxed field accessors

commit 3bb4134
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 13:24:20 2024 -0500

    tiny change

commit 31b1e9d
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 13:21:51 2024 -0500

    added proof of sign-extension logic

commit 8a5da66
Merge: 73d4749 a83d70c
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 13:07:14 2024 -0500

    Merge remote-tracking branch 'refs/remotes/origin/unboxed-small-ints' into unboxed-small-ints

commit 73d4749
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Dec 23 13:06:55 2024 -0500

    addressed some feedback, cleaned some things up

commit a83d70c
Merge: 3eddfc1 efc5211
Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
Date:   Fri Dec 20 16:48:15 2024 -0500

    merged with origin/main

commit 3eddfc1
Merge: 11e57fa 3cc76c0
Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
Date:   Fri Dec 20 16:29:40 2024 -0500

    merged

commit 3cc76c0
Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
Date:   Fri Dec 20 16:09:37 2024 -0500

    formatted

commit d0973be
Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
Date:   Fri Dec 20 15:54:12 2024 -0500

    renamed Stdlib_beta.Int to Int_wrapper

commit f7e4a58
Merge: 03f9cc8 e356f62
Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
Date:   Fri Dec 20 10:37:42 2024 -0500

    merged

commit 03f9cc8
Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
Date:   Thu Dec 19 16:15:47 2024 -0500

    functorized small integer libraries

commit 11e57fa
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 13 16:38:52 2024 -0500

    inlined library functions

commit f47ef38
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 13 16:38:04 2024 -0500

    no small indexing for now

commit 3dfddc4
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 13 16:37:37 2024 -0500

    inlined library functions

commit 15c9c22
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 13 15:15:20 2024 -0500

    fix arm

commit a4ef41a
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 13 14:56:20 2024 -0500

    fix arm64

commit 18fb759
Merge: 5e78a6c 29d45a8
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 13 14:55:38 2024 -0500

    merged

commit 29d45a8
Merge: 782530d 83b13be
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 13 14:51:44 2024 -0500

    Merge remote-tracking branch 'origin/main' into tagged-small-ints

commit 5e78a6c
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 13 14:46:16 2024 -0500

    accidentally flipped a bool

commit 9efa083
Merge: 69e6b81 782530d
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 17:47:57 2024 -0500

    merged with upstream

commit 782530d
Merge: 9058c3f 17d57bd
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 17:33:45 2024 -0500

    Merge remote-tracking branch 'origin/main' into tagged-small-ints

commit 69e6b81
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 17:29:32 2024 -0500

    removed extra file oops

commit 96f3849
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 17:28:39 2024 -0500

    revert change to github workflow file

commit a490e54
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 16:25:27 2024 -0500

    simplified code

commit c2deb71
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 16:12:39 2024 -0500

    updated shift code to optimize away extra tagging operations

commit 400136f
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 14:21:45 2024 -0500

    merged

commit bad1993
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 12:19:46 2024 -0500

    added stdlib and conversion primitives

commit 7830039
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 11:19:00 2024 -0500

    formatted

commit a24610f
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Dec 11 17:49:34 2024 -0500

    updated the rest of the code - no stdlib support yet

commit c958c81
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Dec 10 15:59:14 2024 -0500

    before removing arrays

commit 1fed354
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Dec 10 14:28:17 2024 -0500

    before removing int8 and int16 from boxable numbers

commit 09aef50
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Dec 10 11:58:45 2024 -0500

    merged with origin/break-type-eq-between-boxed-and-unboxed

commit 9058c3f
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Dec 12 13:38:40 2024 -0500

    fix logical right shift bug

commit 96b889d
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 6 13:35:25 2024 -0500

    accept unique id diffs

commit 417caeb
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 6 13:06:22 2024 -0500

    fixed many issues with tagged small ints. Fixed printing, fixed gating them on beta extension universe, fixed the tests.

commit bef118f
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Dec 6 12:31:45 2024 -0500

    added predefined types for int8 and int16, along with modules for them in Stdlib_beta
jvanburen added a commit that referenced this pull request Feb 13, 2025
commit fd41fad6ac61d8f6767d4dcc43917b56f3c6d8d4
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Feb 12 15:27:42 2025 -0500

    cleanup

commit bab5146edfeb831d1f3a8fff23a2d6571620bfc0
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Feb 11 18:12:02 2025 -0500

    updated nff test

commit 8d510c291eceec24f9426f3edfb03d318a7442cb
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Feb 11 18:02:18 2025 -0500

    fixed heap test output

commit ecf40ba1d2242d6e90b092a03fbf4116a12ec22d
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Feb 11 17:12:55 2025 -0500

    fixed again

commit 5d2919eb234f77500d85b5609a328ff06ec6a6be
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Feb 11 17:09:29 2025 -0500

    revert bytecomp change

commit 2522ef607efec385ba2d4317a83b5427c39fd3a7
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Feb 11 17:08:31 2025 -0500

    fixed flambda tests

commit c6c4a8f709894be2b90282c271cdc64491c15e2c
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Feb 11 16:08:34 2025 -0500

    fixed bytecode test

commit fc7206c34e60952a84b479655d98010b69312c50
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Tue Feb 11 15:34:17 2025 -0500

    a lot of stuff

commit 1ed779eb74d03adabb2740071804aa31c2e6414b
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Feb 10 17:29:41 2025 -0500

    fixed integer comparisons

commit 4c47ff99d9eea5553eee9d87ca348fc23b74084f
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Feb 10 16:00:30 2025 -0500

    removed neg from flambda2

commit 1d66fa44b9b2a9067b69e93ce90651bfa496ff70
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Feb 10 14:21:33 2025 -0500

    updated test output

commit e93a56d62f6073294d495a0e1e08f50c1351d433
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Feb 10 14:07:47 2025 -0500

    changed int comparisons to phys-equal

commit af2f0253e73bc7590f74662788af125f3beabd5c
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Feb 7 17:14:05 2025 -0500

    temporary fix for flambda kinds when converting to/from small integers

commit 2dadd94b91e8d91ff52e4996c0f166dddd06d590
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Feb 7 16:11:48 2025 -0500

    fixed printing

commit ea9e9dcbc83635da0e967e44d7241ed9a854246c
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Feb 7 15:48:23 2025 -0500

    moved Scalar to typing, updated typing to have the sorts for the new primitives

commit eb7df7cb66b94f713b2be339f58258f8ced204a3
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Feb 7 11:40:09 2025 -0500

    added phys_equal primitive to lambda

commit d3d7c2dd6fa102618005da9df0ef1cab0b242d84
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Fri Feb 7 10:15:44 2025 -0500

    fixed more things and simplified static_cast

commit 1be41b1b7bbcfd09fef56e8234615ab63f9f334d
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Feb 6 17:17:49 2025 -0500

    silly bug

commit 2051f6db0b3ea7d7199c11492c60a154c6e074ae
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Thu Feb 6 17:10:09 2025 -0500

    compiles but untested

commit 8f375aba8fb87896c7a1ce837338ea7fcc9caf2f
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Feb 5 16:41:43 2025 -0500

    progress on bytecode compilation

commit b498d39f374c047ee9e153b124199dbea8b87ca5
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Feb 5 13:30:58 2025 -0500

    helpers

commit bba43523b003eda950c99e2b6032a6c2cb434338
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Feb 5 09:29:43 2025 -0500

    fixed all but bytecode

commit 5985e83bd9c8abddbe5e3ab7b8bd346a02778189
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Feb 3 17:28:27 2025 -0500

    more progress

commit 76c07e99a395bb6a45517ae942d59c264ad2eb79
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Mon Feb 3 13:10:38 2025 -0500

    progress

commit 80b9292eb4eff3b1392f74aaa3c61551ba6fb9d3
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 29 15:31:17 2025 -0500

    fixed most things except for the translation functions

commit 0eaa24125cc59b52c3c8ff1bed044e93942872aa
Author: Jacob Van Buren <jvanburen@janestreet.com>
Date:   Wed Jan 29 13:50:58 2025 -0500

    Squashed commit of the following:

    commit a093d3b331bbd8c4b4ac23a32b98abfd5bc38fcb
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 24 19:10:54 2025 -0500

        removed old commented code

    commit d090c6d3fa13081a399ad96340616e86fbfc1b19
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 24 19:09:40 2025 -0500

        small fixes

    commit 9c4fa5e4a8aeccff227816f7c987ef9e9acf2d21
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 24 18:58:05 2025 -0500

        translprim fixed

    commit 8b5a93509fa72b9477e027bc7e1792f1c73fca0a
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 24 17:39:04 2025 -0500

        progress

    commit 8c05becf97371e67eed77d876faf3b33d1ceb132
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 24 13:07:59 2025 -0500

        checkpoint before moving modules

    commit 933e993ebd573ff2229b8f4f44ed53753725ee09
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 24 12:34:34 2025 -0500

        checkpoint before 2 type params

    commit 8010fb5ac0e33746895a655be72b88f7e5358e38
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 24 11:16:47 2025 -0500

        introduced naked_immediate to lambda

    commit 6a616fda99e1bdf0570a16dae39abc19eb12f0ec
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 18:17:15 2025 -0500

        push

    commit 08ec6bcccd30a7f937dcc54ab5fddd61da9f0081
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 18:09:45 2025 -0500

        unifying scalar primitives

    commit abe4cef6eb51c70cbb80c2386e9634bd117e6882
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 14:58:18 2025 -0500

        div/rem -> sdiv/srem

    commit 12c5e9f10c6d5a21d514b14183e32e9e188528e0
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 14:41:54 2025 -0500

        fix tests

    commit 902ab4383c1295c3927eed77adea60df3795e81e
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 13:50:07 2025 -0500

        fixed flambda bug

    commit a8a64aef42ee411ea4a2a5e2eb69e2393b0103ed
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 13:16:50 2025 -0500

        updated typing and started changing int16_u

    commit 37a826293ac611c29286cae8b9f72a0b59625766
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 12:55:06 2025 -0500

        removed targetint from lambda

    commit 1eed0a13636b80b52f0591d06396f5d84bfa8264
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 12:46:38 2025 -0500

        added bytecode compilation

    commit d64f310aef9225fd7ec3a7708194ce3c169e1c75
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 23 10:24:27 2025 -0500

        fixed up

    commit 2aa284340f00fedd7cf2e01acaca7d026c119baf
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 14:07:40 2025 -0500

        added primitives, but didn't update backend yet

    commit dc289dd401a5f5334ea4a83e654c1ab8cd4fd35d
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 11:49:09 2025 -0500

        started adding primitives

    commit 4950d066ee176b9120d6146cfa88fa546015981c
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 17:32:27 2025 -0500

        fixed up unboxing proofs to reflect that "unboxed" int8/16 are just untagged immediates

    commit 97864264e796249c2a03f20242366e66eb9fad43
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 17:14:53 2025 -0500

        renamed prove_is_a_boxed_number

    commit 4e97122ad76ff715b973e3a53df225a987013be2
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 17:08:31 2025 -0500

        fixed bbswap

    commit 4d6c02f2fa5b1b666b12325f8d89fb4e7bcbfa42
    Merge: 1e40897b0 39828c22d
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 16:52:01 2025 -0500

        Merge branch 'cmm-scalar-type' into unboxed-small-ints-tryagain

    commit 1e40897b0eaa0c62cf307f8dccced1cba69dbb4a
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 16:30:20 2025 -0500

        formatted

    commit 8ad12b48816b534494393723563e84b17312486c
    Merge: 98ac389e8 a53391db6
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 16:29:00 2025 -0500

        Merge branch 'main' into unboxed-small-ints-tryagain

    commit 39828c22d5acf612c4354eb1d2570d7b969d1ac3
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 15:27:00 2025 -0500

        Squashed commit of the following:

        commit 34a5e6a1cd9178bf90c978629933b271189fb177
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Wed Jan 22 15:26:17 2025 -0500

            Squashed commit of the following:

            commit 16f1b2335612544dfdadcb49658aba257c25781e
            Author: Jacob Van Buren <jvanburen@janestreet.com>
            Date:   Wed Jan 22 15:25:23 2025 -0500

                Squashed commit of the following:

                commit 7c5c7f094168e4d390b503313c61ce387f9ac900
                Author: Jacob Van Buren <jvanburen@janestreet.com>
                Date:   Wed Jan 22 15:24:10 2025 -0500

                    Squashed commit of the following:

                    commit a53391db6543620e5fe254ccfab809dd2dc21842
                    Author: Max Slater <max@thenumb.at>
                    Date:   Wed Jan 22 13:53:02 2025 -0500

                        Rename `atomic_cas`/`Compare_and_swap` (#3491)

                    commit 92b327c9d8830644b67ff4e474e0627ddc1b94f6
                    Author: Max Slater <max@thenumb.at>
                    Date:   Tue Jan 21 14:18:56 2025 -0500

                        Additional operations for int atomics (#3490)

                    commit 38e792cbaeb8fe43e4abfc13000e35cc3d53339c
                    Author: Luke Maurer <lmaurer@janestreet.com>
                    Date:   Tue Jan 21 17:09:23 2025 +0000

                        Support `-open Foo` where `Foo` is parameterised (#3489)

                        The command line

                        ```
                        ocamlopt -open Foo -parameter P -c bar.ml
                        ```

                        should be fine, even if `Foo` is itself parameterised by `P`: as usual, we
                        compile `bar.ml` as if it began with `open! Foo`, and by the subset rule, `Bar`
                        can refer to `Foo` because it takes at least the same parameters. Unfortunately,
                        currently we process `-open` before `-parameter`, so when we go to check the
                        implicit reference to `Foo`, we think there are no parameters, and we report an
                        error. (Confusingly, the error suggests that the user add `-parameter P` to the
                        command line.)

                        The fix is simple: move the code that processes `-parameter` earlier so that
                        the initial environment is constructed with the parameters already available.

                    commit 784dc9651ff30c73bedfc6edd63b87694d9664b0
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 21 14:07:41 2025 +0000

                        Rename [emit.mlp] to [emit.ml] on amd64 (#3488)

                    commit f3b720abe14a107f46ec9484614d447023313930
                    Author: Zesen Qian <riaqn@users.noreply.github.com>
                    Date:   Tue Jan 21 10:35:35 2025 +0000

                        Module aliases save locks instead of walking them immediately (#3398)

                    commit 389a7c3bb97c6212a59f19027f71b5e0df25aca3
                    Author: Nick Barnes <Nick.Barnes@pobox.com>
                    Date:   Mon Jan 20 17:55:51 2025 +0000

                        Add OCAMLRUNPARAM d= parameter for max # domains (#3487)

                        Allow maximum number of domains to be specified as a OCAMLRUNPARAM parameter.

                        (cherry picked from commit f92715f1044aea30ca97e497653c883578f91fe6)

                        Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>

                    commit 63767d778169378026d65fb753a166068a0bd2c2
                    Author: Nick Barnes <Nick.Barnes@pobox.com>
                    Date:   Mon Jan 20 17:45:30 2025 +0000

                        Add caml_runtime_parameters back (#3468)

                        Add caml_runtime_parameters back.

                    commit 5e9975ebd7738804c223b35c4b7580b7a0aadc3d
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Mon Jan 20 17:15:15 2025 +0000

                        Emit atomic compare and exchange (#3486)

                    commit a9821e8569d65d89e586daac7e70ce12b14d655e
                    Author: Basile Clément <129742207+bclement-ocp@users.noreply.github.com>
                    Date:   Mon Jan 20 15:36:09 2025 +0100

                        Make patricia trees big-endian (#3438)

                        This patch switches up the implementation of the `Patricia_tree` module
                        from little-endian to big-endian, with the main motivation to be able to
                        implement in-order traversal.

                        The `caml_int_clz_tagged_to_untagged` and `caml_int_tagged_to_tagged` C
                        stubs are recognized and replaced with the `clz` instruction when
                        compiling with flambda2, so they are only used in the boot compiler.

                    commit b8a9789f6cb16e29a354384419bd1f747b7a2912
                    Author: Leo White <leo@lpw25.net>
                    Date:   Fri Jan 17 13:35:19 2025 +0000

                        Generate specific instructions for atomics on immediates (#3477)

                        * Generate specific instructions for atomics on immediates

                        * Fix formatting

                    commit 7b931344c2eb9058cc193cdb777a70fbb9f2433c
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Fri Jan 17 09:30:30 2025 +0000

                        Vectorizer: add tests (#3456)

                        * Add tests

                        * Disable ocamlformat on unboxed tests

                        * Increase -vectorize-max-block-size for tests

                        * Fix asssertion failure when vectorizing unboxed int32

                        * Disable float32 on arm64 (not yet implemented)

                        * improve gen_dune.ml for the vectorizer tests

                        Co-authored-by: Xavier Clerc <xclerc@users.noreply.github.com>

                    commit 637967879dbb1428cc173e53dfa904efb8277ddb
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Thu Jan 16 16:08:29 2025 +0000

                        Add "-ocamlrunparam" linker flag (#3483)

                    commit f7b2cbe4fa49d47346197e73141f823b9dcd42c2
                    Author: Xavier Clerc <xclerc@users.noreply.github.com>
                    Date:   Thu Jan 16 15:25:28 2025 +0000

                        Bump the version of `actions/upload-artifact` (#3474)

                        * Bump the version of actions/upload-artifact.

                        * Ensure artifact names are unique.

                        * To trigger CI.

                        * Try with commit hash.

                    commit afb8a55f0eebdec679e3fe94b19c67cfa6e963a5
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Thu Jan 16 14:03:37 2025 +0000

                        Move two macOS CI controllers to runtime5 (#3482)

                    commit aae5c40b16a683f41825bdcf502d27e30b8dc150
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Thu Jan 16 13:50:34 2025 +0000

                        Fix error in caml_get_init_stack_wsize (#3481)

                    commit 525868c003218d323497c1b716f467eb02abe64c
                    Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
                    Date:   Wed Jan 15 17:47:30 2025 -0500

                        Use null pointers for `or_null`  (#3267)

                        * runtime changes

                        * runtime4 changes

                        * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

                        * make `Is_block` an inline function

                        * redefine `Is_long`

                        * fix

                        * Change `CODE_UNBOXED_INT64` back

                        * optimize `Is_block`/`Is_long`

                        * `null_tag` for `caml_obj_tag`

                        * consistent naming

                        * slightly more reassuring comment

                        * `inline` is unnecessary and might break `#define inline`

                        * optimization incorrect in presence of nulls

                        * Constructors and pattern-matching

                        * Bytecode compilation

                        * `or_null` is `Variant_or_null`

                        * Accept tests

                        * Runtime tests

                        * Delete obsolete or_null test

                        ---------

                        Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

                    commit 9796b21bf1e9b0488165484401cac651c861b5aa
                    Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
                    Date:   Wed Jan 15 17:47:13 2025 -0500

                        Runtime changes for `or_null` (#3265)

                        * runtime changes

                        * runtime4 changes

                        * Change `CODE_UNBOXED_INT64` and `CODE_NULL`

                        * make `Is_block` an inline function

                        * redefine `Is_long`

                        * fix

                        * Change `CODE_UNBOXED_INT64` back

                        * optimize `Is_block`/`Is_long`

                        * `null_tag` for `caml_obj_tag`

                        * consistent naming

                        * slightly more reassuring comment

                        * `inline` is unnecessary and might break `#define inline`

                        * optimization incorrect in presence of nulls

                        ---------

                        Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

                    commit df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b
                    Author: Chris Casinghino <ccasinghino@janestreet.com>
                    Date:   Wed Jan 15 13:08:53 2025 -0500

                        Bump magic numbers for 5.2.0minus-5 (#3478)

                    commit d1c8d85cc04b801cc32d2cd8f8de592ede85e92d
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Wed Jan 15 16:44:39 2025 +0000

                        Peek and poke (#3309)

                    commit f8caad43325d72b96adecaea0d1b085e38e50c64
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Wed Jan 15 16:00:39 2025 +0000

                        Vectorizer: xmm register can hold ocaml values (#3455)

                        * Add [Valx2] to [Cmm.machtype_component]

                        * Vectorizer generates [Valx2]

                        * Record live offsets of [Valx2] in the frametable

                        For runtime4, xmm register are below [gc_regs], use negative offsets.

                        * Move [types_are_compatible] from [Reg] to [Proc]

                        This information has to be in sync with register classes, stack
                        slock classes, and emit for move instructions.

                    commit 34a7873465a86c8ba15a96d1614475e975908d22
                    Author: Zesen Qian <riaqn@users.noreply.github.com>
                    Date:   Wed Jan 15 13:13:18 2025 +0000

                        Improve coherence of modality zapping (#3462)

                    commit 1a6a9d3d92cb96b9406f7b69a8327a9f81bd2911
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Wed Jan 15 12:06:24 2025 +0000

                        Fix caml_obj_with_tag (#3465)

                    commit bc5110a09414b96d9cc610901182ac8d89dc5491
                    Author: Nick Barnes <Nick.Barnes@pobox.com>
                    Date:   Wed Jan 15 11:52:25 2025 +0000

                        Reset the pacing of major collection after any synchronous major GC (#3463)

                        Reset the pacing of major collection at the end of any synchronous major collection.

                    commit 9faf7009892fac00d4d343510cd68fcd39d31d67
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Wed Jan 15 11:32:59 2025 +0000

                        Remove remnants of caml_obj_truncate (#3469)

                    commit ff9430bc87e2c4f5f869b5c0389259ea84737d3a
                    Author: Luke Maurer <lmaurer@janestreet.com>
                    Date:   Wed Jan 15 11:31:22 2025 +0000

                        Mangle instance symbol names using `____` rather than `___` (#3472)

                        Apparently there are libraries around that have names ending in single
                        underscores, leading to ambiguous symbol names if we use triple
                        underscores to delimit instances. Other choices are possible but this PR
                        opts for newly-developed quadruple-underscore technology.

                    commit 9984700e1d52e310931f1d06d592b64c99d74347
                    Author: Vincent Laviron <vincent.laviron@gmail.com>
                    Date:   Wed Jan 15 11:03:43 2025 +0100

                        Port upstream PRs 11542 and 12505 to runtime4 (#3431)

                        fix #11482: random crash in large closure allocation (#11542)

                        Co-authored-by: Damien Doligez <damien.doligez@inria.fr>

                    commit 058c4db2208acf82ca8d859ee29147a47c3b72b5
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Tue Jan 14 22:19:32 2025 +0000

                        Enable all makearray_dynamic tests on runtime4 (#3470)

                    commit ba15ee5be0f106161b01b91f79246cf76464b794
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 20:08:31 2025 +0000

                        Vectorize [Ifloatarithmem] (#3452)

                        * Add [Isimd_mem] to [Arch.Specific] and emit [addpd] with memory arg

                        and similar instructions

                        * Vectorize [Ifloatarithmem]

                        When the memory alignment is known to be 128-bit (currently, never) emits
                        [addpd], otherwise emits a vector load followed by an arithmetic
                        instruction.

                    commit 9755b392a7d49d972784514c5671ac6f791fb51a
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 18:57:39 2025 +0000

                        Fix CI failure (#3473)

                    commit 859949c4366f36f75986a04490b1df755fddfaf8
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 17:56:53 2025 +0000

                        Vectorize [Specific.Istore_int] (#3450)

                        Used for array initialization (amd64)

                    commit 50f73cb82d43c86b6bf70165b96c85c32c4c0842
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 17:38:39 2025 +0000

                        Do not allow naked pointers (remove configure option) (#3448)

                    commit b7c8ad354cb58c8c460090aa75d9bb075f6a03d6
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 17:07:39 2025 +0000

                        Vectorizer refactor heuristic for select_and_join (#3449)

                        * Refactor [Block.find_last_instruction], cache [Computation.last_pos]

                        * Improve heuristics in [Computation.select_and_join] using [last_pos]

                    commit 22f81d8e89174b6fc95303ac2c9ecc46a6a9438d
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Tue Jan 14 17:00:29 2025 +0000

                        Fix mistake in conditional for makearray_dynamic array initialization (#3466)

                    commit aaaddfb2ac06e0d55c963ae41f182adb65bc46a5
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 14:57:17 2025 +0000

                        Vectorizer: propagate alignment of memory accesses (#3451)

                        Currently it's always 8 but having this argument will help us
                        consider alignment for new vector sequences.

                    commit b15d44ee6b4799f6a0f006ff0f7a5fc5e8a9872e
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 14:55:29 2025 +0000

                        vectorizer: improve debug printout (#3445)

                    commit 6239156e7986a1c8347ac495e1b817e1fb101f4d
                    Author: Stephen Dolan <sdolan@janestreet.com>
                    Date:   Tue Jan 14 13:43:21 2025 +0000

                        Better hugepage alignment of stacks and heap (#3384)

                        Co-authored-by: Mark Shinwell <mshinwell@pm.me>

                    commit 677d79aa8c90ff9f53676b27d2e70d486bc42982
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 13:23:56 2025 +0000

                        Backend dune copy and directive (#3467)

                        * Remove unused line directive from [dune]

                        * Use [copy_files#] to copy files from ARCH and add a file directive

                        * Remove existing file directives

                    commit 314b131234dd998c6f8783af0824abb4a11ed761
                    Author: Stephen Dolan <sdolan@janestreet.com>
                    Date:   Tue Jan 14 11:58:41 2025 +0000

                        Bound stack size in expect tests (#3439)

                    commit 02774f8442f2d25243116307e8c8eaecb8e62e9c
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 10:52:50 2025 +0000

                        all_deps is reflexive (#3464)

                    commit 117a0a01ea554778c5c01bcd4d67f2610d573f67
                    Author: Stephen Dolan <sdolan@janestreet.com>
                    Date:   Tue Jan 14 10:44:15 2025 +0000

                        Stub implementation of new custom memory API (#3437)

                    commit 4f30aac5b8ef83d6df04f5c07190e558abb9d820
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Jan 14 10:31:48 2025 +0000

                        Vectorizer bug fix: address argument of memory operations (#3446)

                        Fix bug: use address arg of the first instruction in a group

                        ... not the last!

                        Only matters for arrays at the moment, where the address offset
                        argument is not always the same register.

                    commit cc91e2b4da05e438ee84c0bfec84de3d5121aec3
                    Author: Vincent Laviron <vincent.laviron@gmail.com>
                    Date:   Tue Jan 14 11:26:59 2025 +0100

                        caml_update_dummy: fail on closure blocks (#3429)

                    commit 17a01a90bd994596c51a604c132c81522254e913
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Tue Jan 14 10:07:39 2025 +0000

                        Implement %array_element_size_in_bytes (#3367)

                        Co-authored-by: Chris Casinghino <ccasinghino@janestreet.com>

                    commit b487f71ec2fd5db50c3095246285d1139c8882ba
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Mon Jan 13 14:05:25 2025 +0000

                        Runtime: make types explicit when reading [gc_regs] (#3453)

                        Runtime4: make types explicit when reading [gc_regs].

                    commit 67e6eb321ee30e01def4358487275a1223a09b2d
                    Author: Max Slater <max@thenumb.at>
                    Date:   Fri Jan 10 16:17:32 2025 -0500

                        More capsule API updates (#3440)

                    commit c7f573fd94a83ec2019f0beb1c8a38659fe6a228
                    Author: Mark Shinwell <mshinwell@pm.me>
                    Date:   Fri Jan 10 18:26:15 2025 +0000

                        Reinstate %makearray_dynamic (#3460)

                    commit e1e4fb81c1921e41ec4354ce0b72a43c9db09aa8
                    Author: Zesen Qian <riaqn@users.noreply.github.com>
                    Date:   Fri Jan 10 16:15:48 2025 +0000

                        `portable` lazy allows `nonportable` thunk (#3436)

                        * portable lazy allows nonportable thunk

                        * add documentation

                        * improve documentation

                        * add examples

                        * improve comments in test

                        * say "not stronger"

                    commit c30ec741861b9d69fe114eb552d1d532559ac853
                    Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
                    Date:   Fri Jan 10 10:41:08 2025 -0500

                        Check for type recursion without boxing (#3407)

                    commit cb290c5bea898102eccd82aa189c51708cedb780
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Fri Jan 10 11:00:32 2025 +0000

                        Vectorizer: rename New (#3454)

                        Rename New to New_vec128 to make the type clear

                        and distinguish it from the upcoming Valx2

                    commit bd39e023864db710fbc40d0f6827eb76e0cfa514
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Fri Jan 10 10:24:48 2025 +0000

                        Add function [DLL.for_all_i] (#3442)

                        * Add function [DLL.for_all_i]

                        * Rename to [for_alli] to match existing [mapi] and [iteri]

                        * Remove unused argument of [aux] in [DLL.for_all*]

                    commit c0489200d6703f203c5693e15d3a78b73ad0e94b
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Thu Jan 9 13:16:36 2025 +0000

                        Cleanup machtype_component size (#3441)

                        Cleanup size_component

                    commit 830d5e74e4e1b7f088e65ef456c1886e3e5a5084
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Thu Jan 9 13:15:59 2025 +0000

                        Add "dump-vectorize" to OCAMLPARAM (#3443)

                        Add [dump-vectorize] to OCAMLPARAM for debugging

                    commit 157c95e9051b76531dcdb1d6c426ece8f213cb59
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Thu Jan 9 13:15:33 2025 +0000

                        Vectorizer bug fix: 128-bit vectorized constant   (#3447)

                        Fix bug: 128-bit vectorized constant high/low correctly ordered

                    commit 648155d6fdbd1210048bc2161dceaa79f098305f
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Thu Jan 9 13:09:48 2025 +0000

                        Add [Printreg.reglist] for debugging (#3444)

                    commit d40254f0b0164d6a32fa548d2eb559126a3493b5
                    Author: Stephen Dolan <sdolan@janestreet.com>
                    Date:   Tue Jan 7 21:25:45 2025 +0000

                        Move two misplaced files (#3435)

                    commit 4a0bb698bef15d51e6d8c46473cb67db493d300e
                    Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
                    Date:   Tue Jan 7 15:34:27 2025 -0500

                        `Yielding` mode axis (#3283)

                        * `Yielding` mode axis

                        * Tests

                        * fix printing

                        ---------

                        Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

                    commit 00275e023ff412c54aa1e28cd4c436ce18857d03
                    Author: Max Slater <max@thenumb.at>
                    Date:   Mon Jan 6 13:05:58 2025 -0500

                        Unbox_float32 should check custom ops name (#3433)

                        check sym name

                    commit 2e49469d60363fb513ef0dee30f60f6da498e826
                    Author: Max Slater <max@thenumb.at>
                    Date:   Mon Jan 6 13:05:03 2025 -0500

                        Make Capsule preserve wrapped exception backtraces (#3421)

                        * with_password

                        * portable

                        * don't use polymorphic parameters

                        * review

                        * protect encapsulated from other capsule

                        * raise wrapped exceptions with existing backtrace

                        * cr

                    commit 2de23a5caa97659358c45bf77560b79feb45046b
                    Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
                    Date:   Mon Jan 6 04:04:29 2025 -0500

                        Fix CI by using `setup-ocaml` v3 for ocamlformat workflow (#3426)

                        [CI] Use setup-ocaml v3 for ocamlformat workflow

                    commit eada0f18e2376e60bba9b6c4423869065360351a
                    Author: Ryan Tjoa <51928404+rtjoa@users.noreply.github.com>
                    Date:   Fri Jan 3 21:23:23 2025 -0500

                        Move unboxed records to stable (#3419)

                    commit a273a33d3fa804275b2755e793c1c4e18468f114
                    Author: Jacob Van Buren <jvanburen@janestreet.com>
                    Date:   Fri Jan 3 11:17:18 2025 -0500

                        Changed make fmt to run in parallel (#3422)

                        changed make fmt to run in parallel

                    commit 4de5a72b35063e42dbb1c150ae5af9293f9cecf2
                    Author: Max Slater <max@thenumb.at>
                    Date:   Thu Jan 2 20:10:08 2025 -0500

                        Add `Capsule.with_password` (#3420)

                    commit b084ff3d12937338448f27940e4228f13cae2dad
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Wed Jan 1 15:34:11 2025 +0000

                        vectorizer: new test (#3418)

                        Add test for register compatiblity

                    commit 55490150f17c17d981fb717820526a87d41f0bda
                    Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
                    Date:   Tue Dec 31 17:20:56 2024 +0000

                        Vectorizer: check register compatibility (#3412)

                        Check that registers are compatible when joining computations

    commit 1b4978af02972f9acf171b4b69ed1a423342c2d5
    Merge: 80b711117 c7361a4d0
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 14:51:42 2025 -0500

        Merge branch 'refactor-cmm-for-more-integer-widths' into cmm-scalar-type

    commit c7361a4d006d695d546f622b2e8608499a95b43a
    Merge: 0052ebbb3 d0e8914c7
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 14:45:04 2025 -0500

        Merge branch 'cmm-refactor-unboxed-fields' into refactor-cmm-for-more-integer-widths

    commit d0e8914c7836fdb228e04a189060b4ce04ed0243
    Merge: abcd72504 dd1d945d4
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Jan 22 14:22:34 2025 -0500

        Merge branch 'generalize-cmm-helpers-interface' into cmm-refactor-unboxed-fields

    commit dd1d945d4a123b1bda3b05888a03f70805f9d8ba
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Jan 21 13:10:36 2025 -0500

        sped up division tests

    commit 958b4d335e647c434d16a33325946f51c034eacc
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Jan 21 12:36:32 2025 -0500

        no specialize

    commit 7033cfd90c99eebb8b6f44857ee32a662f117ace
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Jan 21 11:40:59 2025 -0500

        updated division tests

    commit c5ab6a261595b3326dd22323434a2bff58100d83
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Jan 21 10:59:37 2025 -0500

        moved comment

    commit f1a071b61c0bf4bd51fc6b2315ca7f4463652980
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Jan 21 10:58:42 2025 -0500

        re-added comment with disclaimer for d>1

    commit 1a4407655b48411741210668523966104176bc4e
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 17 15:44:03 2025 -0500

        testing division by constant optimzation

    commit d54b895d01d92bde00a320b932c26f69aa19ab85
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 17 15:40:56 2025 -0500

        responded to feedback

    commit afe40f1c7343c91f09ba911e05dcf000c228bae4
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 16 15:06:12 2025 -0500

        updated signed division by a negative constant to use the algorithm suggested in the referenced book

    commit eff8c7e2e1105d9029cdc8e709f9353fb85b009f
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 16 13:01:05 2025 -0500

        responded to feedback

    commit 80b711117de4cbb01a6c18fa5396400249fe37c8
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Jan 3 11:03:21 2025 -0500

        Added `Cmm_helpers.Scalar_type`. This provides utilities for converting between integers types of different widths and signedness. This is in preparation for adding unboxed small integer types.

    commit abcd7250478134215872effd66c6e3812ac5417e
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Dec 31 11:00:07 2024 -0500

        unified unboxed field getters/setters. This will be useful once we have unboxed integers of different sizes

    commit 0052ebbb3c87569a70a8b25ed8255ccb52cf8c31
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 2 15:40:34 2025 -0500

        Squashed commit of the following:

        commit d1acc48eeef648feeec62849caa74e86ad45199d
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Thu Jan 2 14:53:51 2025 -0500

            Squashed commit of the following:

            commit c9d7aa6424a220573570230a0bc42333c2a50292
            Author: Jacob Van Buren <jvanburen@janestreet.com>
            Date:   Thu Jan 2 14:49:45 2025 -0500

                cleaned up div/mod

            commit 4d9f42796ddc5609069cd74ea070a06d77476513
            Author: Jacob Van Buren <jvanburen@janestreet.com>
            Date:   Thu Jan 2 14:45:42 2025 -0500

                address feedback and simplify division interface

        commit 625a4163b91ea15d8042e6379c9d7fc3f6016d48
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Tue Dec 31 11:00:07 2024 -0500

            unified unboxed field getters/setters. This will be useful once we have unboxed integers of different sizes

        commit 37b4e82e89f44ec92eb72e1e45276538475364d2
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Tue Dec 31 09:40:53 2024 -0500

            formatted

        commit 1746aa890d0794da2fc9df131c4aa9adadb7b3c1
        Author: Jacob Van Buren <jvanburen@janestreet.com>
        Date:   Mon Dec 30 11:37:33 2024 -0500

            updated cmm_helpers interface to be more amenable to adding other integer sizes

        commit 9e7c322ec6683300e67b50aa466a9db520a8973f
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Dec 31 12:01:21 2024 +0000

            Separate test for vectorizer in the CI (#3414)

            * Separate test for vectorizer in the CI

            * Remove vectorizer from "gi" CI job

        commit e1a5fe42d53e2cdf1e27e333782dff8b311edf5f
        Author: Xavier Clerc <xclerc@users.noreply.github.com>
        Date:   Tue Dec 31 10:54:43 2024 +0000

            CI: simplify the regalloc jobs (#3389)

        commit ab229fce09dd33c191962596285d2e7e889760b9
        Author: Greta Yorsh <45005955+gretay-js@users.noreply.github.com>
        Date:   Tue Dec 31 10:42:37 2024 +0000

            ASR 64-bit lane not available in sse instruction (#3413)

        commit 8b99545232890e7991f4456954201cd22d728f04
        Author: Thomas Del Vecchio <127883551+tdelvecchio-jsc@users.noreply.github.com>
        Date:   Mon Dec 30 14:26:48 2024 -0500

            Fix case where parser drops attributes in packed module types. (#3262)

            * Demonstrate dropped attributes in test.

            Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>

            * Syntax error on misplaced attribute in packed module types.

            Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>

            ---------

            Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>

        commit fe97bebd12bc35d416ac1bed16ff6e1e60220055
        Author: Aspen Smith <aspsmith@janestreet.com>
        Date:   Sat Dec 28 11:47:55 2024 -0500

            Add attributes to (unsafely) skip jkind check  (#3385)

            * Add attributes to (unsafely) skip jkind check

            Add a pair of attributes, [@@unsafe_allow_any_kind_in_intf] and
            [@@unsafe_allow_any_kind_in_impl], which if set on both the impl and the intf
            respectively, skip checking the jkind of the type in a signature against the
            jkind of the type in a struct entirely. This is a more-selective version of the
            `--allow-illegal-crossing` flag, and likely eventually subsumes it.

            Signed-off-by: Aspen Smith <aspsmith@janestreet.com>

            * Emit a warning when unsafe_allow_any_kind is added unnecessarily

            Note that this is /only/ done if the attribute is set in both signatures but not
            used - also this is a little over-sensitive (sadly) since this is done during
            sigature inclusion too. A new test covers the over-sensitivity.

            Signed-off-by: Aspen Smith <aspsmith@janestreet.com>

            ---------

            Signed-off-by: Aspen Smith <aspsmith@janestreet.com>

        commit 862ced26837f2b8d9c76af8edab7509708ec39d5
        Author: dkalinichenko-js <118547217+dkalinichenko-js@users.noreply.github.com>
        Date:   Thu Dec 26 15:20:06 2024 -0500

            Add `Variant_with_null` and `Null` variant constructors (#2870)

            * `Variant_with_null`

            * `Null` tagged constructors

            * precise value kind

            * No private re-export

            ---------

            Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

        commit 1eeed8761a4bd59778b4f5fe210c0268f1a7299e
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Thu Dec 26 15:00:49 2024 +0000

            Revert "Implement %makearray_dynamic{,_uninit}" (#3408)

            Revert "Implement %makearray_dynamic{,_uninit} (#3317)"

            This reverts commit 6da1dde0b8a3391d08d5267c2c58654694bda880.

        commit 2358e099fd9a30be1892d73dc2675f4339f13dd7
        Author: Mark Shinwell <mshinwell@pm.me>
        Date:   Tue Dec 24 15:54:06 2024 +0000

            Upload core files etc upon CI failure (#3405)

        commit dc6e300e9eac4f6df747f4e1e83cfd9cb4de08aa
        Author: Xavier Clerc <xclerc@users.noreply.github.com>
        Date:   Tue Dec 24 10:06:20 2024 +0100

            Fix IRC and Greedy allocators (arm64) (#3388)

        commit 65c059600ca67edb3cd1c8c40baa58168b51ee90
        Author: Max Slater <max@thenumb.at>
        Date:   Mon Dec 23 16:49:37 2024 -0500

            Convert float32 constants to int32 in first stage compiler (#3371)

            * convert float32 constants in bytecode output

            * edit

            * edit

            * blocks + test

            * compare against float64 constants

            * tests check proper custom ops

            ---------

            Co-authored-by: Diana Kalinichenko <dkalinichenko@janestreet.com>

    commit c9d7aa6424a220573570230a0bc42333c2a50292
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 2 14:49:45 2025 -0500

        cleaned up div/mod

    commit 4d9f42796ddc5609069cd74ea070a06d77476513
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Jan 2 14:45:42 2025 -0500

        address feedback and simplify division interface

    commit 37b4e82e89f44ec92eb72e1e45276538475364d2
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Dec 31 09:40:53 2024 -0500

        formatted

    commit 1746aa890d0794da2fc9df131c4aa9adadb7b3c1
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 30 11:37:33 2024 -0500

        updated cmm_helpers interface to be more amenable to adding other integer sizes

    commit 98ac389e886dacd99c418d09626f305325f7f895
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 27 14:49:54 2024 -0500

        simplified shift operators

    commit 6f73bf95eefec000a546fd757a462f6e12ea9116
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 27 13:28:30 2024 -0500

        expanded cmm_helpers numeric types to handle more numeric types

    commit 5ca16d83394cd123ce2f0aa4aafd0e392d8befce
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 26 17:05:20 2024 -0500

        working on casting and splitting up PR

    commit b6c0154d89f752bd64c1e64771c8c7e37bafa369
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 16:28:17 2024 -0500

        formatted

    commit e9760bfc5ed6065b45ec3807ff9edcb30b95f4bc
    Merge: 5e5c4f397 a7b1f5153
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 16:27:49 2024 -0500

        Merge branch 'refactor-cmm-for-more-integer-widths' into unboxed-small-ints

    commit a7b1f51531d2b8a34bbba355c39fcdf550b6e478
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 16:26:20 2024 -0500

        formatted

    commit 5e5c4f397cf027d0de30817abdf59ec1c8d09188
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 16:25:42 2024 -0500

        fixed merge

    commit b3e3b453e03a0bf91797315b1e04941f4bd2b4f3
    Merge: 6fa950454 227f0c840
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 16:10:28 2024 -0500

        Merge branch 'refactor-cmm-for-more-integer-widths' into unboxed-small-ints

    commit 227f0c8409c5c0106804e2e3ad2238f849e2548c
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 16:08:07 2024 -0500

        moved cmm refactors into their own branch

    commit 6fa950454416f183b4158a701b059c87e52b010f
    Merge: 4983b518c 6da1dde0b
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 15:50:38 2024 -0500

        Merge remote-tracking branch 'origin/main' into unboxed-small-ints

    commit 4983b518cb5b68635b5d178b11154cfe8e917e4b
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 15:36:41 2024 -0500

        unified unboxed field accessors

    commit 3bb4134fea69fec47f765d38952bee5c571bc127
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 13:24:20 2024 -0500

        tiny change

    commit 31b1e9da613a00d8520f8d886e8622fef82806fc
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 13:21:51 2024 -0500

        added proof of sign-extension logic

    commit 8a5da66e8c284da4605d25e533f1716e0305096f
    Merge: 73d4749e0 a83d70c90
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 13:07:14 2024 -0500

        Merge remote-tracking branch 'refs/remotes/origin/unboxed-small-ints' into unboxed-small-ints

    commit 73d4749e003147652551c17cdb0c5e6ad59a2a68
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Mon Dec 23 13:06:55 2024 -0500

        addressed some feedback, cleaned some things up

    commit a83d70c90a1f60d3343b801a10e324290f3b3f25
    Merge: 3eddfc1f9 efc521112
    Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
    Date:   Fri Dec 20 16:48:15 2024 -0500

        merged with origin/main

    commit 3eddfc1f9866801dcd4c8a24d41e62f93ceed899
    Merge: 11e57fa6f 3cc76c067
    Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
    Date:   Fri Dec 20 16:29:40 2024 -0500

        merged

    commit 3cc76c067d9793779b16bd27c1aef52840780124
    Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
    Date:   Fri Dec 20 16:09:37 2024 -0500

        formatted

    commit d0973be64254301cc586ab760463f43f26a59593
    Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
    Date:   Fri Dec 20 15:54:12 2024 -0500

        renamed Stdlib_beta.Int to Int_wrapper

    commit f7e4a58427ce6a03e2d973633da6a9c6d1698449
    Merge: 03f9cc842 e356f6245
    Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
    Date:   Fri Dec 20 10:37:42 2024 -0500

        merged

    commit 03f9cc8421854443caafc938483db1f670fefec3
    Author: Jacob Van Buren <jvanbure@alumni.cmu.edu>
    Date:   Thu Dec 19 16:15:47 2024 -0500

        functorized small integer libraries

    commit 11e57fa6fd0be62d51b0a5c4f94b88cf5cf39144
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 13 16:38:52 2024 -0500

        inlined library functions

    commit f47ef389a27f43f0d1362829f919fe8272f751ee
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 13 16:38:04 2024 -0500

        no small indexing for now

    commit 3dfddc4de0fa5033c9886e7885f72f6b7e0d4666
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 13 16:37:37 2024 -0500

        inlined library functions

    commit 15c9c2253ddd823c21ceef6d8b73dd38195ebb0b
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 13 15:15:20 2024 -0500

        fix arm

    commit a4ef41ae7c113f4ac445305e20c64abeb91c3fbf
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 13 14:56:20 2024 -0500

        fix arm64

    commit 18fb759114b61458549f3e08f34cbc44e888f92c
    Merge: 5e78a6c4c 29d45a8f9
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 13 14:55:38 2024 -0500

        merged

    commit 29d45a8f974ca4072586f62f4a6d463399f5ad5b
    Merge: 782530d30 83b13bed0
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 13 14:51:44 2024 -0500

        Merge remote-tracking branch 'origin/main' into tagged-small-ints

    commit 5e78a6c4ce0d355efeb2fdd01aaecc1e5c07ad75
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 13 14:46:16 2024 -0500

        accidentally flipped a bool

    commit 9efa083495a1acbae29026b0e822e535b7296a04
    Merge: 69e6b8163 782530d30
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 17:47:57 2024 -0500

        merged with upstream

    commit 782530d3018c0caea047d39c3143b1194f60ed0c
    Merge: 9058c3fdb 17d57bd96
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 17:33:45 2024 -0500

        Merge remote-tracking branch 'origin/main' into tagged-small-ints

    commit 69e6b8163c5403350e14038bab8e3b24aa49beca
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 17:29:32 2024 -0500

        removed extra file oops

    commit 96f38495376e84119a4f9e706dd8d90594a11252
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 17:28:39 2024 -0500

        revert change to github workflow file

    commit a490e5415ff7543bfaa492e4310edaef04df80c0
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 16:25:27 2024 -0500

        simplified code

    commit c2deb71adcfc543e25c85803de3dc4cfdfa3653a
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 16:12:39 2024 -0500

        updated shift code to optimize away extra tagging operations

    commit 400136fbd8459b6cff62bec0de3c17b4be1b7fc5
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 14:21:45 2024 -0500

        merged

    commit bad19930858e443cf87434e7348cf5b9b17adacb
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 12:19:46 2024 -0500

        added stdlib and conversion primitives

    commit 7830039640ca44648073f0e2e82e4e9af9860a65
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 11:19:00 2024 -0500

        formatted

    commit a24610fc8c87b81b98c1f10b621c0b46b5d32634
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Wed Dec 11 17:49:34 2024 -0500

        updated the rest of the code - no stdlib support yet

    commit c958c81f6fc439e5b0964c5f75513c2ce82da74e
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Dec 10 15:59:14 2024 -0500

        before removing arrays

    commit 1fed354946eb2582507f9158a330353bc3c39088
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Dec 10 14:28:17 2024 -0500

        before removing int8 and int16 from boxable numbers

    commit 09aef50dcc021e77d09c38c2d4c090cced3e367a
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Tue Dec 10 11:58:45 2024 -0500

        merged with origin/break-type-eq-between-boxed-and-unboxed

    commit 9058c3fdbeec5d3e2f757abf74edbe71a573b011
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Thu Dec 12 13:38:40 2024 -0500

        fix logical right shift bug

    commit 96b889de104fffa53ab22c7642821ff4f36afa0d
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 6 13:35:25 2024 -0500

        accept unique id diffs

    commit 417caeb1f6b619ab5d47f65978fd3b53eddbcf44
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 6 13:06:22 2024 -0500

        fixed many issues with tagged small ints. Fixed printing, fixed gating them on beta extension universe, fixed the tests.

    commit bef118f9f9f3386688db48d38ad393546006a3a0
    Author: Jacob Van Buren <jvanburen@janestreet.com>
    Date:   Fri Dec 6 12:31:45 2024 -0500

        added predefined types for int8 and int16, along with modules for them in Stdlib_beta
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants